Как изменения в базе данных должны приниматься в LINQ, а затем связываться с XAML?

Существует множество замечательных статей и примеров, показывающих, как добавить INotifyPropertyChanged в классы LINQ, сопоставленные с таблицами базы данных, чтобы можно было привязать элементы представления XAML (например, ItemsSource ListView) к LINQ. У Эбби Фихтнер (она же Hacker Chick) есть отличный пример в Code Project http://www.codeproject.com/Articles/43025/A-LINQ-Tutorial-Mapping-Tables-to-Objects Однако все примеры, которые я нашел, предполагают изменения в базе данных ( добавление строк, удаление строк и обновление строк) все исходит из кода LINQ.

Существует ли установленный шаблон для того, чтобы классы LINQ получали изменения в базе данных? Очевидным является установка таймера и повторный запуск запросов на выборку для заполнения классов LINQ, но мне интересно, может ли привязка между базой данных SQL и LINQ иметь встроенное событие для этого? Для меня также не очевидно, смогут ли обновленные классы LINQ отличать новые строки от старых и, таким образом, знать, следует ли вызывать события PropertyChanged.

Как люди справляются с этим?


person dumbledad    schedule 16.02.2012    source источник


Ответы (1)


Вам нужны SqlDependencies: http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldependency.aspx . Кто-то даже нашел способ интегрировать их с LINQ-запросами, но вам придется выяснить, насколько он хорош самостоятельно: http://rusanu.com/2010/08/04/sqldependency-кэшированиенаосновеlinq-запросов/

person zmbq    schedule 16.02.2012