StackOverflowException сериализация сущности .netTiers

У меня есть простая служба WCF:

public Order[] GetOrdersByStatus(int statusid)
{
    OrderService os = new OrderService();
    TList<Order> orders = os.GetByOrderStateID(statusid);

    return orders.ToArray();
}

когда это возвращается, он вызывает исключение StackOverflowException в mscorlib. Есть идеи, что могло быть причиной этого?

OrderService - это служба, созданная NetTiers, а Order - объект сущности NetTiers. когда я возвращаюсь, данные уже извлечены из базы данных и готовы к работе. Что, кроме ошибки в WCF, может вызвать исключение StackOverflowException после того, как я вернусь из своей операции?


person joshperry    schedule 12.12.2008    source источник
comment
Да, это правда, честно говоря, я даже не смотрел на реализацию сущностей NetTiers. Возможно, проблема в этом, я просто предположил, что сущности NetTiers использовались бы таким образом и генерировали достойный код.   -  person joshperry    schedule 12.12.2008


Ответы (1)


Если реализация сериализации типа «Заказ» плохая, то может быть так.

person Brian    schedule 12.12.2008
comment
Сгенерированные с помощью .netTiers объекты имеют ключ объекта. Этот ключ сущности имеет свойство, указывающее на его родительский элемент, но это свойство не помечено как [XmlIgnore] или [NonSerialized]. При сериализации объекта он создает цикл, и сериализация взорвет стек. Спасибо за помощь. - person joshperry; 12.12.2008