2012-01-11 17 views
5

Estoy utilizando Entity Framework con procedimientos almacenados para insertar/actualizar/eliminar entidades.Servidor SQL: informe de error a .NET

La tarea que estoy haciendo es la gestión de inventario con métodos FIFO/LIFO => esas inserciones/actualizaciones/eliminaciones realizan varias comprobaciones y pueden fallar (a veces fallan).

El problema es que quiero informar a .NET de lo que salió mal y por qué. ¿Cómo puedo hacerlo?

Actualmente estoy usando algo como esto:

BEGIN --rollback 
ROLLBACK TRAN 
RAISERROR (N'There''s not enough items in stock.', -- message 
    16, -- severity 
    1) -- state 
END; 

siempre me sale "error MSDTC" - "El proveedor subyacente falló en EnlistTransaction."

Respuesta

0

Deberá verificar InnerException para obtener el error personalizado que ha generado.

+0

Ya he hecho esto y InnerException es nulo. – kubal5003

1

No creo que esté llegando tan lejos. Se está produciendo un error cuando se inicia una de las transacciones, no se genera su error personalizado.

+0

Ese es probablemente el caso. El problema es que si todo está bien, la transacción se compromete bien -> mi manejo de errores hace que algo se rompa. Supongo que el flujo de ejecución en el SP no se interrumpe y cuando llega a COMMIT todo se rompe (como debería, porque la transacción ya se ha retrotraído). E tity Framework informa el último error -> no es mío ... – kubal5003

Cuestiones relacionadas