2012-02-09 18 views
0

私にはStackOweflowの問題を引き起こす小さな問題があります。自己参照エンティティを持つAutoMapperマップエンティティ

私は複合型のEF 4.1を使用していますが、問題は、すべての値がNULLの場合でも、complextypeのインスタンスを作成してEFで動作させる必要があることです。

だから今、私はこのようになりますクラスを持っている...

public class GoodsItem{ 

    public GoodsItem InnerGoodsItem{get;set;} 

    //-- A lot of other properties needed for this class 

    public GoodsItem() 
    { 
    this.InnerGoodsItem = new GoodsItem(); 
    } 
} 

それが必要として私はEFが機能するためには、コンストラクタ内のコードを必要とするが、その後、私はGoodsItemを作成するたびに、それは新しいを作成し、新しいGoodsItemなどを作成するGoodItem ...

AutoMapperでこの問題を解決するにはどうすればよいですか?

ありがとうございました...

答えて

0

コンストラクタがどのように動作するかわかりません。おそらく、あなたはこのように、プロパティのgetにインナーアイテムを初期化するために、あなたのクラスを変更できます(ありがたいことに、私はかなりこれまでのEFを避けてきたものの

public class GoodsItem{ 

    private GoodsItem _innerGoodsItem; 
    public GoodsItem InnerGoodsItem 
    { 
     get 
     { 
      if (_innerGoodsItem == null) _innerGoodsItem = new GoodsItem(); 
      return _innerGoodsItem; 
     } 
     set { _innerGoodsItem = value; } 
    } 

    //-- A lot of other properties needed for this class 

    public GoodsItem() 
    { 
     //No longer need this call in ctor 
     //this.InnerGoodsItem = new GoodsItem(); 
    } 
} 

わからないこれはEFで問題が発生するかどうか! )。

+0

ありがとうございます。簡単な方法でInnerGoodsをGoodsItemのコレクションにしました。そして問題は解決されました。そして、その解決策は実際に我々がそれについてビジネスマンに話をしたときにもっと正確でした... –

+0

さて、ビジネスが幸せである限り! upvote ;-)まで気軽に – Simon