Wie lege ich in Entity Framework ein Feld auf DBNull fest?

dbnull entity-framework

Frage

Wie setzen Sie ein Feld in Entity Framework auf DBNull? Die Felder sind stark typisiert, sodass Sie es nicht gleich DBNull.Value setzen können. Ich habe keine Methode gefunden, um ein Feld auf DBNull zu setzen. Es scheint, dass dies eine notwendige Sache ist, aber nach vielem Nachforschen bei Google fand ich nichts darüber.

Ich versuche, ein Datumsfeld in Entity Framework mithilfe von vb.net festzulegen. Dafür muss ich schreiben

 myEntity.mydate = Nothing

Dadurch wird das Feld nicht auf NULL festgelegt, sondern es wird stattdessen der Standardwert für das Datum verwendet, bei dem es sich nicht um einen gültigen Datumswert in SQL Server handelt.

Akzeptierte Antwort

Wenn eine Spalte in der Datenbank nullfähig ist, hat die Ergebnisklasse auch eine nullfähige Eigenschaft.

Wenn beispielsweise eine Order eine Datetime Spalte mit dem Namen CreatedDate , sieht die resultierende Order Klasse in etwa wie folgt aus:

public partial class Order: EntityObject
{
  ...
  private DateTime? _createdDate;
  ...
}

Wenn _ createdDate keinen Wert hat, wenn Sie ObjectContext.SaveChanges() aufrufen, wird eine System.DBNull automatisch als Teil des Befehls insert oder update an die Datenbank gesendet.

Hoffe das hilft Alex


Beliebte Antwort

Setzen Sie den Feldwert auf null . Das Entity Framework übersetzt dies in System.DBNull .



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum