ADO.NET Entity: obtenção de dados de 3 tabelas

votos
3

Eu tenho seguinte estrutura de tabela:

Table: Plant
 PlantID: Primary Key
 PlantName: String

Table: Party
 PartyID: Primary Key
 PartyName: String
 PlantID: link to Plant table

Table: Customer
 PartyID: Primary Key, link to Party
 CustomerCode: String 

Eu gostaria de ter objeto de entidade Cliente seguintes campos:

 PartyID: Primary Key
 CustomerCode: String
 PartyName: String
 PlantName: String

Estou tendo problemas com o campo PlantName (que é trazido da mesa Planta I ligada ao Cliente para festa e festa a planta com associações No entanto, não pode se conectar ao Cliente plantar com a associação (porque ele não tem um) Eu não posso adicionar a tabela Planta para mapeamento, quando faço isso - eu estou começando seguinte erro:

Error 3024: Problem in Mapping Fragment starting at line 352: Must specify mapping for all key properties (CustomerSet.PartyID) of the EntitySet CustomerSet

Removendo associação Planta funciona. Quaisquer sugestões ou indicações muito apreciado.

Publicado 10/12/2008 em 04:12
fonte usuário
Em outras línguas...                            


3 respostas

votos
3

Você pode obter esses campos usando o caminho de referência sobre o objeto de entidade.

Para obter o PartyName, use esta sintaxe: Customer.Party.PartyName

Para obter o PlantName, use esta sintaxe: Customer.Party.Plant.PlantName

Respondeu 10/12/2008 em 14:01
fonte usuário

votos
1

Depois de alguma pesquisa, me deparei com este tópico no MSDN que diz que você pode criar uma entidade somente leitura, que é o suficiente de uma desvantagem de não usá-lo sozinho, mas isso fica ainda pior. Você também vai perder a capacidade de atualizar todos os modelos com base no esquema do banco de dados dinamicamente.

Respondeu 06/04/2009 em 23:42
fonte usuário

votos
2

Você pode estender a entidade cliente usando a classe parcial pública:

public partial class Customer
{
  public string PartyName
  {
    get { return Party.PartyName; }
    set { Party.PartyName = value; }
  }

  public string PlantName
  {
    get { return Party.Plant.PlantName; }
    set { Party.Plant.PlantName = value; }
  }
}
Respondeu 06/04/2009 em 23:51
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more