Dla typu złożonego w ramach podmiotu wyłącznie z właściwości pustych, dlaczego jest to, że za coś takiego jak poniżej wymaga kompleks typ być instancja:Złożone Rodzaje Nullable Wartości
[ComplexType]
public class Address {
public string Address1 { get; set; }
}
public class Customer {
[Key]
public int CustomerId {get;set;}
public Address Address {get;set;}
}
Dokładniej, jeśli nie zadeklaruj i wpisz adres, otrzymasz "Wartość Null dla nie-Nieliniowego członka. Członek:" Adres "." Zgodnie z this question.
Dopóki wszystkie właściwości w typie złożonym są zerowalne, dlaczego struktura encji wymaga wystąpienia adresu? Ponieważ adres 1 jest zerowalny, dlaczego nie można go po prostu założyć i utworzyć tabelę (i kolumnę Address_Address1) i wartość pustą w wierszu, tak jakbym utworzyła instancję adresu o zerowym adresie 1?
Czy istnieje ustawienie atrybutów/płynności, które mogę zastosować, aby to osiągnąć?
Być może nie przydzielono pamięci dla adresu przy użyciu operatora null. –
To jest naprawdę zła cecha EF. Używając refleksji na obiekcie Address, EF może łatwo ustalić, jakie kolumny utworzyć przy tworzeniu tabeli. Nie musi mieć instancji Adres z jednostki, aby to rozwikłać. A jeśli chodzi o tworzenie/aktualizowanie encji, jeśli właściwość ComplexType miała wartość NULL, co jest trudniejsze w ustawianiu tych kolumn w bazie danych na wartość null? To powinno być łatwym dodatkiem do kolejnej wersji EF IMO. – Ibraheem