1

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; }

では、この作業を行うにはマッピングをどのように変更すればよいですか?

どうもありがとう!

4

1 に答える 1

0

これがあなたの答えになると思います:

http://msdn.microsoft.com/en-us/data/jj715646.aspx EF デザイナー - エンティティを複数のテーブルにマップする (エンティティ分割) をカバーしています。

于 2013-08-02T20:27:36.690 に答える