Associação de mapeamento de estrutura de entidades entre visualização e tabela

9

Eu posso mapear intuitivamente tabelas 1: 1 (um-para-um) assim:

MasnãoconsigoentendercomofazeromesmomapeamentoentreumatabelaeumaVIEW,comoesta

Neste diagrama, as duas entidades são representadas. Se eu criar manualmente uma associação no modelo de entidade e configurar seu mapeamento da seguinte forma:

Então eu recebo o erro:

  

Erro 3021: Problema no Fragmento de Mapeamento iniciando na linha 172: Cada uma das colunas a seguir na tabela view_EmployeeView é mapeada para várias propriedades do lado conceitual:   view_EmployeeView.EmployeeID está mapeado para Employeesview_EmployeeView.Employees.id, Employeesview_EmployeeView.view_EmployeeView.EmployeeID

Por que não recebo esse erro com a associação da tabela? Como eu resolvo este problema? Eu gostaria de colocar algumas informações calculadas em uma view, mas explicitamente me juntar a ela quando precisar com a função .Include ().

    
por tenfour 26.07.2010 в 17:12
fonte

1 resposta

5

Para mapear uma associação entre duas entidades, a chave estrangeira também não pode ser a chave primária.

O que você realmente tem aqui é uma herança TPT. Você tem uma classe "base", além de propriedades adicionais opcionais em uma segunda tabela (ou exibição).

Assista a este vídeo: link

Faça a entidade "view" herdar da entidade Employee. Remova a propriedade EmployeeID da entidade de exibição. Mapeie a coluna EmployeeID da View para a propriedade ID do funcionário base. Você obterá um único ObjectSet no seu ObjectContext para essa hierarquia.

    
por Ray Henry 01.10.2010 / 19:54
fonte