Потерять возможности привязки данных с UoW паттерном в Linq to Sql - PullRequest
3 голосов
/ 25 июля 2010

В настоящее время я работаю над своим первым приложением Linq-to-Sql. Я реализовал методы доступа к данным с коротким временем жизни dataContext следующим образом:

public IProduct GetByCode(string code)
{
   using (var db = new dataContext())
   {
      return db.Products.SingleOrDefault(e => e.Code == code);
   }
}        

Мне интересно, как получить уведомления об изменениях свойств clr. Когда у вас есть один dataContext, это не проблема.

Итак, вопрос в том, как мне получить изменения сущности в памяти?!

У меня есть сущность, которую можно изменить на двух разных экранах. Обновления на одном экране должны быть видны на другом. Единственная возможность, которую я вижу, - позволить dataContext иметь то же время жизни, что и на обоих экранах, что сводится к времени жизни приложения.

Я чувствую трения между шаблоном «Единица работы» (по запросу) и возможностями полного связывания данных. Пожалуйста, скажите мне, что мне не хватает ...

1 Ответ

0 голосов
/ 06 октября 2011

Классы, сгенерированные LINQ to SQL, реализуют INotifyPropertyChanged, так что вы можете использовать его для отслеживания изменений исходного объекта в памяти.

Однако оба ваших экрана должны были бы указывать на ЖЕ экземпляр, не имея своих собственных копий (что звучит так?).

Вы не говорите, какой тип привязки используют ваши экраны пользовательского интерфейса: если это WPF / Silverlight и вы используете связывание, вы можете захотеть использовать подход MVVM, где источник данных используется для двух экранов.

...