Come posso impostare un campo su DBNull in Entity Framework
-
03-07-2019 - |
Domanda
Come si imposta un campo su DBNull in Entity Framework? I campi sono fortemente tipizzati, quindi non è possibile impostarlo uguale a DBNull.Value e non abbiamo trovato alcun metodo per impostare un campo su DBNull. Sembra che questa sia una cosa necessaria da fare, ma dopo molte ricerche su Google non ho trovato nulla al riguardo.
Sto cercando di impostare un campo datetime in Entity Framework utilizzando vb.net. Questo mi richiede di scrivere
myEntity.mydate = Nothing
Questo non imposta il campo su null ma lo imposta invece sul valore di data predefinito che non è un valore di data valido in SQL Server.
Soluzione
Se una colonna è nullable nel database, anche la classe risultante avrà una proprietà nullable.
Ad esempio se una tabella Order
ha una colonna Datetime
nullable chiamata CreatedDate
, la classe Order
risultante sarà simile a questo:
public partial class Order: EntityObject
{
...
private DateTime? _createdDate;
...
}
Se il _ CreatedDate
non ha alcun valore quando si chiama ObjectContext.SaveChanges ()
un System.DBNull
verrà automaticamente inviato al database come parte del comando insert o update.
Spero che questo aiuti Alex
Altri suggerimenti
Imposta il valore del campo su null
. Entity Framework tradurrà questo in System.DBNull
.
Non ho mai usato il framework di entità ma puoi trasformare una variabile in un tipo nullable?
qualcosa come
dim entityVar as nullable(of date)
allora puoi fare il = niente e non rimarrà nulla.
ma come ho detto, non ho mai usato il framework di entità
mentre cercavo su Google ho scoperto che segnala bug su Microsoft Connect