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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top