それぞれが対応する同一のテーブルにマップされているクラス名を除いて、同一のエンティティがいくつかあります。各テーブルのマッピングは次のようになります。
modelBuilder.Entity<Foo>().Map(x =>
{
x.MapInheritedProperties();
x.ToTable("Foo");
})
このアプローチは機能しますが、繰り返します。
再配置を取り除くことを期待してこのクラスを作成しました。ここでは簡潔にするために簡略化しています。
public class Generic<T>
{
public Generic(DbModelBuilder modelBuilder, string tableName)
{
modelBuilder.Entity<T>().Map(m =>
{
m.MapInheritedProperties();
m.ToTable(tableName);
});
}
}
理解できない次のコンパイラエラーが発生します。
The type 'T' must be a reference type in order to use it as parameter 'TEntityType' in the generic type or method 'System.Data.Entity.DbModelBuilder.Entity<TEntityType>()'
- 多くの.Netコーダーと同様に、私はジェネリックスをよく使用しますが、頻繁には記述しません。
- 私はしばらくの間EFを使用していますが、CodeFirstはかなり初めてです。
- 私は運が悪かったので、SOの内外で多くの検索を行いました。
- 私は何が間違っているのですか?何がわからないの?
よろしくお願いします、ジム