Wie kann ich ein Feld in Entity Framework DBNULL gesetzt
-
03-07-2019 - |
Frage
Wie stellen Sie ein Feld in Entity Framework DBNULL? Die Felder sind stark typisiert, so dass Sie es nicht gleich DBNull.Value gesetzt und ich fand keine Methode ein Feld DBNull einzustellen. Es scheint, wie dies eine notwendige Sache zu tun, aber nach vielen Google Forschung fand ich nichts.
Ich versuche, ein Datetime-Feld in Entity Framework zu setzen vb.net verwenden. Dies erfordert mich zu schreiben
myEntity.mydate = Nothing
Dies stellt nicht das Feld auf null, sondern stellt es auf den Standard-Datumswert, der kein gültiges Datum Wert in SQL Server ist.
Lösung
Wenn eine Spalte in der Datenbank NULL festlegbare ist das Ergebnis Klasse wird auch eine Nullable-Eigenschaft hat.
Zum Beispiel, wenn eine Order
Tabelle eine Nullable-Datetime
Spalt namens CreatedDate
hat, dann wird die resultierende Order
Klasse wird in etwa so aussieht:
public partial class Order: EntityObject
{
...
private DateTime? _createdDate;
...
}
Wenn der _createdDate
keinen Wert hat, wenn Sie anrufen ObjectContext.SaveChanges()
eine System.DBNull
automatisch in die Datenbank als Teil des Einsatzes oder Update-Befehl gesendet wird.
Hope, das hilft Alex
Andere Tipps
Stellen Sie den Feldwert null
. Das Entity Framework wird dies zu System.DBNull
übersetzen.
ich nie Entity-Framework verwendet, aber können Sie eine Variable in ein Nullable Type drehen?
so etwas wie
dim entityVar as nullable(of date)
dann können Sie die = nichts tun und es wird nichts bleiben.
aber wie ich schon sagte, ich habe nie Entity-Framework verwendet
während der Suche auf Google fand ich, dass Bug-Report auf Microsoft Connect rel="nofollow