2014-04-11 2 views
0

я найти множество примеров об этом, но никто не работает для меня ...Один ко многим картографирования в рамках Entity с беглом апи

У меня есть главный класс:

public class Class1 
{ 
    public int id { get; set; } 
    public string desc { get; set; } 
    public virtual Class2 class2 {get; set;} 
} 

и второй класс:

public class Class2 
{ 
    public int id { get; set; } 
    public string desc { get; set; } 
} 

Я отображение Class1 таким образом

public class Class1Map : EntityTypeConfiguration<Class1> 
{ 
    public Class1Map() 
    { 
     // Primary Key 
     this.HasKey(t => t.Id); 

     // Table & Column Mappings 
     this.ToTable("Class1TableName"); 
     this.Property(t => t.id).HasColumnName("IdColumnName"); 
     this.Property(t => t.desc).HasColumnName("DescColumName"); 
    } 
} 

и это хорошо работает

, но я стараюсь много способов, чтобы связать Class2 свойства Class1 в IdClass2ColumnName области Class1Tablename в качестве внешнего ключа связан с IdColumnName из Class2 таблицы без успеха.

Как вы можете видеть, что я не хочу, чтобы положить также IdClass2 собственности в Class1

Для тестирования я пытался без успеха:

+0

После некоторых работах дб была создана (даже если AutomaticMigrationsEnabled свойство установлено в конфигурации не работает ...), но в Class1TableName не нашел поле IdClass2ColumnName но class2_id один –

+0

Дополнительная информация : каждая запись класса2 в таблице может использоваться во многих элементах класса1, это просто таблица типов –

ответ

0

решенный, была проблема миграции кода, я забыл обновить класс миграции кода, и поэтому EF использует имя старого столбца.

Правильный синтаксис отображение

this.HasRequired(t => t.class2) 
    .WithRequiredDependent() 
    .Map(m => m.MapKey("IdClass2ColumnName ")); 
Смежные вопросы