У меня есть строка кода, как
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. Двоичная сериализация требует, чтобы все мои классы были украшены некоторыми атрибутами. так что я немного растерялся здесь.