Как обновить реляционное свойство класса LINQ? - PullRequest
1 голос
/ 21 июля 2010

У меня есть два экземпляра программы, которые управляют одной и той же базой данных Northwind.
Когда я добавляю несколько записей в базу данных из одного из экземпляров (например, добавление некоторых заказов в таблицу Orders с внешним ключом клиента John)Я могу запросить эти новые записи из другого экземпляра программы должным образом.Проблема начинается, когда я хочу получить доступ к этим новым записям, используя John.Orders.В этой ситуации второй экземпляр программы не видит вновь добавленные записи.Что мне делать?

1 Ответ

1 голос
/ 21 июля 2010

Проблема, с которой вы столкнулись, вероятно, связана со временем, когда вы поддерживаете класс LINQ to SQL DataContext.Как правило, он должен быть уничтожен после каждой единицы работы, которую вы выполняете с ним (поскольку он следует шаблону проектирования «единица работы»), что обычно означает после каждого варианта использования / бизнес-транзакции.

Вы, вероятно, сохраняетеDataContext класс жив в течение всей жизни приложения.Класс DataContext не подходит для этого, потому что он будет кэшировать все объекты, которые он когда-то извлек, означая, что ваши данные устареют.

Создайте новый класс DataContext для каждой операции или каждый раз, когда пользовательоткрывает новую форму / экран.

...