DBに次のテーブル構造があります:
表示
- ID
- タイプ
- インスタンス名
- 文字列値
- IntValue
そして私はこのクラス構造を持っています
abstract class Indication
{
public int Id { get; set; }
public int Type { get; set; }
public string InstanceName { get; set; }
}
class StringIndication : Indication
{
public string Value { get; set;}
}
class IntIndication : Indication
{
public intValue { get; set;}
}
Type プロパティに依存するこの構造にテーブルをマップしたい。だから、それは簡単でした:
modelBuilder.Entity<Indication>()
.Map<IntIndication>(m => m.Requires("Type").HasValue(1))
.Map<StringIndication>(m => m.Requires("Type").HasValue(2));
modelBuilder.Entity<IntIndication>().Property(c => c.Value).HasColumnName("IntValue");
modelBuilder.Entity<StringIndication>().Property(c => c.Value).HasColumnName("StringValue");
うまくいきましたが、もう1つやりたいことがあります。InstanceName の辞書が必要です。だから、私は別のテーブルを作成します
実例
- ID
- 名前
、Indication テーブルの InstanceName を InstanceId に変更しました。
しかし、私はルックアッププロパティを望んでいません
public Instance Instance {get;set;}
私の指示表で。代わりに私は維持したい
public string InstanceName { get; set; }
さらに追加します
public id InstanceId { get; set; }
では、この作業を行うにはマッピングをどのように変更すればよいですか?
どうもありがとう!