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.

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top