Que tipo de objeto que deve ser obrigatório para a minha forma WPF em um aplicativo n-tier?
-
06-09-2019 - |
Pergunta
Atualmente, estou trabalhando em um pequeno aplicativo N-Tier em C # que usa Linq to Entities (SQL Express 2005 para o DB) e WPF e eu estou querendo saber qual o tipo de coleta de dados minha camada de lógica de negócios deve ser o fornecimento de a interface do usuário.
Existem desvantagens (desempenho, validação etc) para ligação de objetos de formulário como DataGridViews para um IQueryable? Devo preencher um in-memory DataTable e passar isso para a interface do usuário? Em qual camada deve o DataContext ser inicializado?
Solução
Você não pode vincular adequadamente a um IQueryable<T>
(exceto em ASP.NET onde IEnumerable<T>
é bom) - que idealmente quer uma lista repetitivo de objetos. Usando DataTable
é contra-intuitivo. Tudo que você precisa é de um List<T>
/ BindingList<T>
etc; i.
var qry = ...;
var list = qry.ToList();
Agora use list
como a origem da ligação.
IMO, os dados ao contexto seria escondido atrás de um repositório de interface , mas sua milhagem pode variar.
Outras dicas
Para adicionar à lista de Marc, você pode querer olhar para ObservableCollection<T>
também.
EDIT: ObservableCollections são comumente usados ??no padrão MVVM, leia sobre isso aqui para ver alguns exemplos.