Сущность AutoMapper Map с самоссылочной сущностью - PullRequest
0 голосов
/ 09 февраля 2012

У меня есть небольшая проблема, которая вызывает у меня проблему StackOweflow.

Я использую EF 4.1 со сложными типами, и это работает, проблема в том, что вам нужно создать экземпляр сложного типа, даже если все значения являются нулевыми, чтобы он работал с 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, он создает новый GoodItems, который создает новый GoodsItem и так далее ...

Как я могу решить эту проблему с AutoMapper и при этом сохранить EF 4.1 довольным.

Спасибо заранее ...

1 Ответ

0 голосов
/ 13 февраля 2012

Не вижу, как этот конструктор мог работать. Возможно, вы могли бы изменить свой класс для инициализации внутреннего элемента в свойстве 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!).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...