Я пытаюсь использовать Entity Framework CTP5 Fluent API для сопоставления существующей базы данных. У меня есть следующие классы:
public class Shop
{
public long Id
{
get;
set;
}
}
public class Sale
{
public long Id
{
get;
set;
}
public virtual Shop Shop
{
get;
set;
}
}
Соответствующие таблицы называются «Магазины» и «Продажи». Sales имеет внешний ключ StoreId, который указывает на поле Id в таблице магазинов.
Я пытаюсь сопоставить Sale.Shop.Id с StoreId в таблице. Я не могу изменить его на ShopId, поэтому нужно отобразить его.
В CTP4 я использовал:
modelBuilder.Entity<Sale>().MapSingleType(x =>
new
{
Id = x.Id,
StoreId = x.Shop.Id
});
Я попробовал следующее:
modelBuilder.Entity<Sale>().Property(x => x.Shop.Id).HasColumnName("StoreId");
Однако, похоже, это работает только с примитивным типом.
Как мне указать это отображение?