¿Cómo configuro un campo para DBNull en Entity Framework?
-
03-07-2019 - |
Pregunta
¿Cómo configura un campo para DBNull en Entity Framework? Los campos se escriben con fuerza, por lo que no se puede establecer igual a DBNull.Value y no se encontró ningún método para establecer un campo en DBNull. Parece que esto es algo necesario para hacer, pero después de mucha investigación en Google no encontré nada al respecto.
Estoy tratando de establecer un campo de fecha y hora en Entity Framework usando vb.net. Esto requiere que escriba
myEntity.mydate = Nothing
Esto no establece el campo en nulo, sino que lo establece en el valor de fecha predeterminado que no es un valor de fecha válido en SQL Server.
Solución
Si una columna es anulable en la base de datos, la clase de resultado también tendrá una propiedad anulable.
Por ejemplo, si una tabla Order
tiene una columna Datetime
que no acepta nulos llamada CreatedDate
, la clase Order
resultante Se ve algo como esto:
public partial class Order: EntityObject
{
...
private DateTime? _createdDate;
...
}
Si _ _code> createdDate no tiene ningún valor al llamar a ObjectContext.SaveChanges ()
, se enviará automáticamente un System.DBNull
a la base de datos. como parte del comando de inserción o actualización.
Espero que esto ayude Alex
Otros consejos
Establezca el valor del campo en null
. El Entity Framework lo traducirá a System.DBNull
.
Nunca usé Entidad-marco, pero ¿puedes convertir una variable en un tipo que pueda contener nulos?
algo como
dim entityVar as nullable(of date)
entonces puedes hacer el = nada y no se quedará nada.
pero como dije, nunca usé framework-entidad
mientras miraba en google, encontré que informe de error en Microsoft Connect