valores valor usar tener stored que procedimientos procedimiento parametros objeto mapear funcion framework ejecutar devuelve debe con columnas almacenados almacenado agregar acepta c# asp.net linq-to-sql stored-procedures

c# - valor - ¿Cómo puedo manejar una columna NULLable Int devuelta desde un procedimiento almacenado en LINQ a SQL



mapear stored procedure entity framework (3)

Tengo un procedimiento almacenado que devuelve dos valores int. El primero no puede ser nulo, pero el segundo puede devolver un valor nulo. Cuando intento ejecutar mi procedimiento almacenado usando LINQ to SQL, falla con la instrucción:

El valor nulo no se puede asignar a un miembro con el tipo System.Int32, que es un tipo de valor que no admite nulos.

Traté de cambiar mi archivo de diseñador en mi DBML y agregar: CanBeNull= true a la asignación de columnas del resultado de los procedimientos almacenados.

Parece que puedo encontrar la forma correcta de manejar esto, no estoy seguro si puedo cambiar mi código LINQ / C # para dar cuenta de la nulidad (que sería preferible) o si tendré que actualizar mi Procedimiento almacenado de alguna manera .


Debe declarar que la variable puede contener nulos. En el diseñador, haga clic en la propiedad de su modelo que debe ser anulable, y luego en la ventana Propiedades , establezca la propiedad "Nullable" en True . Esto le indicará al generador que cree su propiedad como Nullable<int> or int?


Intente declarar las variables int como anulables. Es decir

int? myInt;

De esta forma puede verificarlos por nulos.


También recibí este error. La razón fue que he cambiado un campo para permitir la nulidad en la tabla, pero no he descartado esa tabla en el archivo .dbml. Este problema se resuelve eliminando y soltando nuevamente esa tabla en el archivo .dbml.

Espero que esto ayude a otros usuarios.

Gracias.