Per un tipo complesso in Entity Framework con solo proprietà nullable, perché è che per qualcosa di simile al seguente richiede un'istanza del tipo complesso:complessi Tipi di Nullable Valori
[ComplexType]
public class Address {
public string Address1 { get; set; }
}
public class Customer {
[Key]
public int CustomerId {get;set;}
public Address Address {get;set;}
}
Più in particolare, se non lo fai dichiarare e indirizzare il tipo, si ottiene un "valore Null per membro non annullabile Membro: 'Indirizzo'." Come da this question.
Fintantoché tutte le proprietà nel tipo complesso sono annullabili, perché il framework di entità richiede un'istanza di indirizzo? Dato che Address1 è annullabile, perché non può semplicemente assumere che e creare la tabella (e la colonna Address_Address1) e il valore nullo nella riga come se avessi creato un'istanza di Address con un indirizzo1 nullo?
Oppure esiste un attributo/impostazione fluente che posso applicare per ottenerlo?
Potrebbe non essere allocata memoria per indirizzo utilizzando operatore Null. –
Questa è una caratteristica davvero negativa di EF. Utilizzando la riflessione su un oggetto Address, EF può facilmente capire quali colonne creare sulla creazione di una tabella. Non ha bisogno di avere un'istanza di Address dall'entità per risolverlo. E sulla creazione/aggiornamento di entità, se la proprietà ComplexType era nulla, cosa c'è di così difficile nell'impostare quelle colonne nel database in null? Questa dovrebbe essere una semplice aggiunta alla prossima versione di EF IMO. – Ibraheem