具有自引用实体的AutoMapper Map实体

时间:2012-02-09 13:27:06

标签: entity-framework automapper

我有一个小问题,它给我一个StackOweflow问题。

我使用带有复杂类型的EF 4.1,这是有效的,问题是你需要创建一个complextype实例,即使所有值都为null,也可以使用它。

所以现在我有一个看起来像这样的课程。

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时,它都会创建一个新的GoodItems来创建一个新的GoodsItem,依此类推......

如何使用AutoMapper解决此问题并仍然保持EF 4.1的快乐。

先谢谢...

1 个答案:

答案 0 :(得分:0)

无法看到该构造函数如何工作。也许你可以改变你的类来初始化属性get中的内部项,如下所示:

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出现问题(幸好,到目前为止,我几乎避免了EF!)。