Клонируйтесь Linq возражают Ошибке “Граф объектов для типа 'TestLinq. PersonAddress содержит циклы и не может быть сериализирован, если ссылочное отслеживание отключено”.

Я думаю что-то как Википедия, или американские данные переписи являются 'большой' базой данных. Мои персональные списки адресов или todos являются маленькой базой данных. Измеренная база данных середины является чем-то промежуточным.

Вы могли попытаться определить размеры тем, в каком количестве серверов Вы нуждались. Маленькая база данных является компонентом приложения, Вы работаете на своем рабочем столе, база данных среднего размера была бы единственным mysql (безотносительно) сервера где-нибудь, и большая база данных собирается потребовать нескольких серверов с некоторой репликацией/поддержкой кластерных систем.

7
задан Yuriy Faktorovich 16 September 2009 в 12:31
поделиться

2 ответа

Эта проблема возникает из-за того, что сущности linq обычно имеют связи между родительскими и дочерними элементами в обоих направлениях. Например, если у вас есть класс Order, сопоставленный с таблицей, а класс OrderItem сопоставлен с другой таблицей, вы ожидаете, что таблица OrderItem будет выглядеть так:

CREATE TABLE OrderItem ( ... OrderId int ссылки Order (Id) )

Сгенерированные сущности linq будут выглядеть следующим образом:

public class Order
{
    //other members
    public EntitySet<OrderItem> OrderItems { get; }
}

public class OrderItem
{
    //other members
    public Order Order { get; }
}

Это не может быть сериализовано, поскольку существует циклическая ссылка между заказом и каждым из его дочерних элементов OrderItem. Если вы используете linq2sql desiger для создания этих классов, вы можете указать ему создавать ссылки только в одном направлении (от родителя к потомку), щелкнув поверхность конструктора и изменив «Режим сериализации» на «Однонаправленный»

17
ответ дан 6 December 2019 в 11:50
поделиться

Может быть, опубликовать фактический класс для PersonAddress ? Мне интересно, например, есть ли у вас свойство ассоциации, помеченное [DataMember] , или нет [DataMember] вообще; в этом случае он просматривает поля - что может сработать, если у вас есть лениво загруженный член (и, следовательно, связь с контекстом данных).

Обратите внимание, что если вам нужен только один объект (а не ассоциации), существуют другие способы сделать неглубокий клон - , например, .

0
ответ дан 6 December 2019 в 11:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: