私は以下のような実体を持っています
public abstract class MyBaseClass
{
public int Id { get; set; }
}
public class MyConcrete : MyBaseClass
{
public int TemplateName { get; set; }
public int Total { get; set; }
}
public class MyOtherConcrete : MyBaseClass
{
public int TemplateName { get; set; }
public int MyProperty { get; set; }
public string OtherProperty { get; set; }
}
デフォルトの初期化を使用して、EFは次のような列を持つテーブルを作成します。
Id
TemplateName
TemplateName1 // <-- this is the problem
Total
MyPorperty
MyOtherProperty
ここで、EFを構成して、派生クラスのすべてのTemplateNameプロパティが、別の列を作成せずにTemplateName列に自動的にマップされるようにする方法について質問します。メソッドで構成することは可能OnModelCreating
ですか?
編集
実際、上記は私の問題の単純化されたバージョンでした。さらに10個のエンティティがあり、一部のプロパティがどこにでも複製される可能性があり、抽象化レイヤーを追加したくありません。
列を手動でマップしようとしましたOnModelCreating
が、「タイプ内の各プロパティ名は一意である必要があります。プロパティ名'TemplateName'はすでに定義されています」例外はありますか?
編集2
だから、ここで見つけたのですが、EFでは上記のようなことは不可能だと言っていましたが、私にとっては奇妙です。