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;
}
}
対応するテーブルは、"Stores" および "Sales" と呼ばれます。Sales には、Stores テーブルの Id フィールドを指す StoreId 外部キーがあります。
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");
ただし、これはプリミティブ型でのみ機能するようです。
このマッピングを指定するにはどうすればよいですか?