Pergunta

Eu tenho que fazer um Mestre-Detalhe do cenário onde o mestre que eu possa mostrar muitos tipos de itens, que todos eles implementam IDto:

interface IDto
{
  int Id { get; set; }
  string Title { get; set; }
  EntityType { get; set;
}

enum EntityType
{
  Contact,
  Person,
  Company,
  Customer
  Employee,
  Vendor,
  Job  
}

Nota:Eu estou usando o Entity Framework EDM (gerado ObjectContext e EntityObjects).

A hierarquia de classes é que Contact é a subclasse de Person e Company, Person é a classe base de Employee, Company é a classe base de Vendor. Customer tem uma propriedade Contact que pode ser um Contact ou um Person, e tem uma lista de Job.

enter image description here

Agora na lista mestre, eu quero carregar uma coleção de DTOs do DomainService (é uma LinqToEntitiesDomainService<ObjectContext>, e eu quero apenas os campos especificados no IDto contrato para ser selecionado, em seguida, quando selecionada, coloque a entidade inteira, com todos os seus campos/dados relacionados etc.na área de detalhes.

Atualização:Pensei em outra idéia.
Criar um banco de dados visualização (SQL2008) que retorna a 3 linhas de acima IDto contrato onde o enum será armazenado como int ou tinyint (irá, em seguida, alterar o enum para byte) e, em seguida, no edm, eu posso fazer uma tabela por hierarquia para cada EntityType armazenados na lista, e devolvê-lo a partir do DomainService.

BTW, todos os valores enum será usada para a consulta, na verdade, nenhuma entidade vai voltar Contact para a sua EntityType propriedade, porque Contact é abstrato e pode ser um Person ou um Company, mas eu ainda quero ter uma opção para consulta de ambos.

Atualização 2
O cliente também quer, para cada um dos itens na lista, também todos os seus trabalhos.
Com base na hierarquia descrevi acima, para um Customer - selecione todos os seus trabalhos;para um Contact ou um Person - escolha a sua Customer's Jobs (se o seu Customer). Vendor ou Employees não são feitos para ser o registro com Jobs.

Eu acho que a única forma de fazer isso é com banco de dados-modos de exibição.
Estou errado?Quais são as consequências?Eu estou usando SL5 com a RIA.

É a Vista de maneira bem?Ou eu deveria lidar com todas as consultas em que o cliente utilizar um cliente POCO?porque realmente esse valor só são usados para recuperar o nome do contato e os seus postos de trabalho.mais detalhes e manipulação será feito em outros pontos de vista sobre o Entity entidades que eles mesmos.

Então, o que você especialistas acham?

Foi útil?

Solução

Eu encontrei este post muito útil, e é, na verdade, deixe-me um desicion.

  1. Exibições de banco de dados não é necessariamente a melhor abordagem
  2. Vai voltar a parcial entidades através POCO DTOs do serviço de domínio.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top