Desidero definire gli attributi [Required]
in un tipo complesso in Entity Framework. Ad esempio, ho un'entità Customer
con un Address
facoltativo. L'entità indirizzo ha una proprietà PostCode
obbligatoria.Proprietà richieste su tipi complessi di Entity Framework facoltativi
[ComplexType]
public class Address {
public string Address1 { get; set; }
[Required]
public string PostCode { get; set; }
}
public class Customer {
public int CustomerId {get;set;}
public Address Address {get;set;}
}
Non voglio per memorizzare il mio tipo complesso come un'entità separata (non sto realtà usando Indirizzo, questo solo un esempio semplice del problema). Non posso lasciare Customer.Address nulla, perché questo dà l'errore:
Null value for non-nullable member. Member: 'Address'.
Se fornisco un'entità Indirizzo vuoto, la convalida non riesce sul campo PostCode a causa del l'attributo richiesto.
Esiste un modo per raggiungere questo obiettivo? Sto usando EF5/NET4.5.
Speravo davvero di farlo senza un'entità diversa. Suppongo che dovrò fare la convalida un po 'diversamente. Grazie per aver confermato i miei sospetti comunque! – Richard
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