Проблема присоединения объекта в L2s после вызова AsEnumerable - PullRequest
0 голосов
/ 28 июля 2011

У меня есть строка кода, как

    deleted = detailTable.AsEnumerable().Where(x=>childForiegnKey(x).Equals(parentKey(newMaster)) && 
!newDetail.Any(z=>childKey(z).Equals(childKey(x)))).ToList();

вы видите, у меня есть методы, которые не имеют перевода в sql, поэтому я должен вызвать AsEnumerable перед вызовом этих методов в предложении where. Когда я пытаюсь прикрепить объект типа

, все идет не так
  detailTable.Attach(x);

он начинает кричать, что вы не можете создать элемент с тем же ключом и т. Д. Я искал вокруг и обнаружил, что это потому, что тот же объект уже был загружен с использованием того же dataContext. ну, тогда тот же самый datacontext только вызывает db в первом лямбда-выражении. Я считаю, что виновным является AsEnumerable (возможно, он заносит в память всю таблицу или помечает каждую строку как загруженную и т. Д.). Как я могу решить эту проблему. Я должен использовать эти методы в предложении, где и я должен присоединить сущность. есть ли решение?
Редактировать: Стоит сказать, что проблема более раздражающая, потому что мы не можем легко отсоединить сущность в L2s. Двоичная сериализация требует, чтобы все мои классы были украшены некоторыми атрибутами. так что я немного растерялся здесь.

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