Ho lo scenario in cui i dati di una singola tabella devono essere in 2 oggetti.Codice quadro entità Primo: come mappare la tabella piatta in classe con oggetti nidificati
[Table]
-Field1
-Field2
-Field3
-Field4
E l'aspetto classe come questa:
[Class1]
-Field1
-Field2
-Class2 object here
[Class2]
-Field3
-Field4
ho impostato nel Class1 l'attributo [notmapped] sulla proprietà del Class2 che contengono il campo 3 e 4. Ho anche aggiunto la configurazione nel contesto di database:
public class ConfigurationClass1 : EntityTypeConfiguration<Class1> {
public ConfigurationClass1() {
Property(o => o.Class2.Field3).HasColumnName("Field3");
Property(o => o.Class2.Field4).HasColumnName("Field4");
}
}
il problema è che quando cerco di utilizzare Entity Framework con il Class1 ho ottenuto:
La proprietà "Classe2" non è una proprietà dichiarata sul tipo "Classe2". Verificare che la proprietà non sia stata esclusa esplicitamente dal modello utilizzando il metodo Ignora o l'annotazione di dati NotMappedAttribute. Assicurarsi che sia una proprietà primitiva valida.
Come è possibile utilizzare il codice Entity Framework Innanzitutto con un'entità che ha un oggetto nidificato con tutte le informazioni in una tabella piatta?
Sembra un sacco di problemi per quello che è un problema semplice. –
@Chuck Conway sono d'accordo, ma questo è il modo in cui funziona in EF –
Mi sono completamente dimenticato di ComplexType. Una volta configurato con l'attributo ComplexType, tutto ha funzionato. Grazie. +1 e accettato :) –