2016-07-13 7 views
-1

Ich bin möglicherweise Blick auf Umzug von nHibernate für meine ORM zu Entity Framework und ich bin auf ein kleines Problem, wenn die Datenbank hat einen Null-Wert, aber die Entität Eigenschaft ist nicht NULL-Werte . nHibernate wird nur den Standardwert festlegen und weitermachen und keine Ausnahmen verursachen. Das heißt, wenn ich eine boolsche Eigenschaft habe, ist es falsch, wenn die Datenbank null ist.Entity Framework-Standardwert für Null-Eigenschaften auf select

Im Entitätsrahmen (6) wird eine Ausnahme ausgelöst. Gibt es eine Konfigurationseinstellung, die ich vermisse, um EF anzuweisen, einen Standardwert festzulegen, wenn für die Eigenschaft keine Nullwerte zulässig sind und der Datenbankwert null ist?

+1

Warum Eigenschaft nicht NULL sein kann, wenn Datenbankspalte? sie sollen genau abbilden, EF duldet solche Dinge nicht. –

+0

Nein, EF unterstützt das nicht (die Liste der nicht unterstützten Funktionen im Vergleich zu NHibernate ist ziemlich lang. Seine LINQ-Unterstützung ist der USP). –

+0

@IvanStoev, wir haben Probleme, bei denen die Datenbankentwickler eine Spalte in Nullable ändern und NULL-Werte hinzufügen, ohne die Entwickler zu informieren. Ich stimme Ihnen zu, wenn der Entwickler alles dabei verwaltet. –

Antwort

1

Ihre Entitätseigenschaften müssen automatische Eigenschaften nicht, so dass Sie könnte zum Beispiel tun:

public class SomeEntity 
{ 
    private bool _field 
    public bool? Field 
    { 
    get { return _field; } 
    set { _field = value.HasValue ? false : value.Value; } 
    } 
} 
+0

Wenn unbedingt benötigt, funktioniert das. –