2011-09-26 20 views
8

Tengo una gran aplicación ASP.NET para la que estoy creando casos de prueba de UI automatizada, parte de la parte final de este caso de prueba es eliminar el usuario que acaba de crear (para mantener el mismo detalle cada ejecución de prueba, y esperará los mismos resultados, ningún dato cambiará). Por lo tanto, realicé un procedimiento almacenado para hacer esto.Tipo de devolución no válida para un procedimiento almacenado asignado

El SP funciona bien en SQL, lo he probado. Ahora lo he mapeado en LINQ2SQL. Sin embargo, cuando se ejecuta, obtengo esto:

System.InvalidOperationException: 'System.Void' no es un tipo de devolución válido para un método de procedimiento almacenado mapeado.

La conclusión es que mi SP no tiene un tipo de devolución, no lo quiero.

Respuesta

13

Por defecto, la ejecución exitosa de un procedimiento almacenado devolverá el valor numérico 0.

Se puede cambiar el tipo de cambio de su asignación a LINQ2SQL int? Si no le importa el valor devuelto, simplemente puede ignorarlo.

+0

Tuve un problema similar y quería devolver un DATETIME de mi procedimiento almacenado. Siguiendo las instrucciones en [msdn] (https://msdn.microsoft.com/en-us/library/bb399357 (v = vs.110) .aspx), llegué a tener este error. La clave era cambiar mi asignación de llamadas a esto: '[FunctionAttribute (Name =" dbo.GetMyDate ", IsComposable = true)] [return: Parámetro (DbType =" DATETIME ")]' –

Cuestiones relacionadas