2008-10-09 7 views
0

Я использую ссылку на sql, у меня есть связанный набор объектов.LinqtoSQL и проблемы

Я начинаю и сделать заявление LINQ, как этот

Dim L= from II in context.InventoryItems select II 
Dim L2 = L.tolist 

Вторая линия, так что я мог бы сузить, где проблема была встречающаяся. Когда вторая строка попадает, я получаю сообщение об ошибке «EntitySet уже загружен и источник не может быть изменен»

Любые идеи, что может быть причиной этого?

+0

Это новый контекст или вы использовали его раньше? Вы уверены, что хотите загрузить * все * предметы инвентаря из базы данных? Это то, что вы делаете с вызовом ToList. Это поможет добавить само исключение и трассировку стека. – 2008-10-12 10:54:57

ответ

0

Для всех, кто интересуется, будьте осторожны с тем, что вы делаете в конструкторе, я инициализировал некоторые вещи в конструкторе, которых я не должен был быть, и это вызвало ошибку при загрузке из datacontext.

1

Комментарий Омера поднимает очень хорошую точку: этот DataContext повторно используется в предыдущей операции? Если это так, вы можете проверить Dino Esposito's blog post относительно срока службы DataContext, чтобы убедиться, что вы не слишком долго держите его слишком долго.

Эта ошибка звучит так, будто вы уже загрузили данные из таблицы InventoryItems с использованием этого DataContext и, возможно, внесли некоторые изменения в объекты, привязанные к DataContext, которые вы еще не отправили. Если вы попробуете свой код с новым DataContext без указания каких-либо специальных DataLoadOptions, он должен работать.

Смежные вопросы