Hola:
Evidentemente, el usar CachedUpdates hace que la detección de errores que dejamos al servidor, como en este caso, se posponga al momento de hacer ApplyUpdates.
¿Soluciones? Se me ocurre o bien que esa comprobación de clave foránea la hagas desde la aplicación lanzando una consulta, o bien que interceptes el evento OnUpdateError de la tabla correspondiente. Ahí puedes chequear el problema y "desborrar" el registro involucrado (creo que para ello te puede servir el método RevertRecord) y pones, en dicho evento, UpdateAction a uaRetry para que vuelva a intentarse la grabación de lo que tenías en la cache, de esa forma el resto de modificaciones no se ven perjudicadas.
Saludos
|