2012-02-09 1 views
0

StackOweflow 문제를 일으키는 작은 문제가 있습니다.AutoMapper 자기 참조 엔티티가있는 엔티티

complextype이있는 EF 4.1을 사용하고 있는데, 문제는 모든 값이 null 인 경우에도 complextype의 인스턴스를 만들어야 만 EF와 작동하도록하는 것입니다.

그래서 지금은 예상대로 EF가 작동하려면

public class GoodsItem{ 

    public GoodsItem InnerGoodsItem{get;set;} 

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

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

내가 생성자의 코드가 필요합니다 .. 다음과 같습니다 클래스를 가지고,하지만 난 GoodsItem을 만들 때마다 그것은 새로운를 생성 새 GoodsItem을 만드는 GoodItem 등 ...

AutoMapper로이 문제를 해결하고 EF 4.1을 계속 행복하게 유지할 수 있습니까?

고맙습니다 ...

답변

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 컬렉션으로 만들었습니다. 그리고 문제는 해결되었습니다. 그리고 그 솔루션은 실제로 우리가 그것에 대해 사업에 spooken했을 때 더 정확했습니다 ... –

+0

글쎄, 사업이 행복하다면! 자유롭게 upvote ;-) 느낌 – Simon