Entity Framework Code First: как сопоставить плоскую таблицу с классом с вложенными объектами

У меня есть сценарий, в котором данные из одной таблицы должны быть в 2 объектах.

[Table]
-Field1
-Field2
-Field3
-Field4

И класс выглядит следующим образом:

[Class1]
-Field1
-Field2
-Class2 object here

[Class2]
-Field3
-Field4

Я установил в Class1 атрибут [NotMapped] над свойством Class2, которое содержит поля 3 и 4. Я также добавил конфигурацию в контекст базы данных:

public class ConfigurationClass1 : EntityTypeConfiguration<Class1> {
    public ConfigurationClass1 () {
        Property(o => o.Class2.Field3).HasColumnName("Field3");
        Property(o => o.Class2.Field4).HasColumnName("Field4");
    }
}

Проблема в том, что когда я пытаюсь использовать Entity Framework с Class1, я получаю следующее:

Свойство Class2 не является объявленным свойством типа Class2. Убедитесь, что свойство не было явно исключено из модель с помощью метода Ignore или данных NotMappedAttribute аннотация. Убедитесь, что это допустимое примитивное свойство.

Как я могу использовать Entity Framework Code First с сущностью, у которой есть вложенный объект со всей информацией в плоской таблице?

9
задан Patrick Desjardins 13 June 2012 в 04:56
поделиться