Какой тип объекта должен быть связан с моей формой WPF в n-уровневом приложении? - PullRequest
3 голосов
/ 25 февраля 2009

В настоящее время я работаю над небольшим N-уровневым приложением на C #, которое использует Linq-to-Entities (SQL Express 2005 для БД) и WPF, и мне интересно, какой тип сбора данных должен обеспечивать мой уровень бизнес-логики пользовательский интерфейс.

Есть ли недостатки (производительность, проверка и т. Д.) Для привязки объектов формы, таких как представления данных, к IQueryable? Должен ли я заполнить DataTable в памяти и передать его в пользовательский интерфейс? В каком слое должен быть инициализирован DataContext?

Ответы [ 2 ]

5 голосов
/ 25 февраля 2009

Чтобы добавить в список Марка, вы можете посмотреть также ObservableCollection<T>.

EDIT: ObservableCollections обычно используются в шаблоне MVVM, прочитайте об этом здесь , чтобы увидеть некоторые примеры.

4 голосов
/ 25 февраля 2009

Невозможно правильно связать с IQueryable<T> (кроме ASP.NET, где IEnumerable<T> нормально) - в идеале ему нужен повторяемый список объектов. Использование DataTable нелогично. Все, что вам нужно, это List<T> / BindingList<T> и т. Д .; т.е.

var qry = ...;
var list = qry.ToList();

Теперь используйте list в качестве источника привязки.

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

...