none
tabela que une outras duas tabelas RRS feed

  • Pergunta

  • Olá pessoal. Estou com uma dúvida que é a seguinte:

    Tenho três tabelas: tab_A (campo_A (PK), campo_B, campo_C), tab_B (campo_D (PK), campo_E) e tab_C (tab_A.campo_A (FK), tab_B.campo_D (FK)).

    1º- No meu model não aparece a a tab_C

    2º- Na minha lambda expression, qdo eu coloco tab_A. , aparece uma referencia da tab_B (tab_A.tab_B), mas não aparece campos. Como eu posso pegar os dados da tab_C que está relacionando tab_A e tab_B?

    Estou usando .net 4.

    Att.,

     

    Eduardo.


    quinta-feira, 4 de agosto de 2011 14:56

Todas as Respostas

  • e ai eduardo, 

    cara, tu pode modelar este banco, pq eu prefiro normalmente adicionar a FK no direto entre as tab a e b, mas da maneira q ta eu adicionaria a tab_c no model, 

    dai ficaria algo assim na labmda:

    db.tab_a.Where(a => a.campo_a == c.campo_a).Select(x => x.campo_d)

     

    se eu entendi bem seria algo mais ou menos assim,

    tem outras maneiras mas desse jeito fica facil de tu entender como fazer

    sexta-feira, 5 de agosto de 2011 14:55
  • Olá Eduardo,

    Neste caso quando você faz o mapeamento entre três tabelas e a terceira neste caso é apenas contém as chaves, no modelo de objetos ela não aparece mesmo, pois não é preciso, isso fica somente no modelo relacional que é preciso para o banco de dados.

    Então não pe preciso na verdade no modelo de objetos acessar os campos da tabela C, basta usar as tabelas A e B, e precisando por exemplo de adicionar uma linha em B relacionada com A é só fazer na tabela A que o Linq irár traduzir isso para o modelo relacional.

    Se tiver dúvidas post aqui o modelo identificando se está usando Entity Framework ou o que seja.

    Até mais.

    sábado, 6 de agosto de 2011 03:17
  • Olá pessoal, obrigado pelas respostas. 

    Baseado no que vcs falaram, como eu faria um insert então, nesta tabela que não existe no edmx?

     

    Abraços.

    segunda-feira, 8 de agosto de 2011 17:50
  • Olá Eduardo,

    No caso da sua terceira tabela vc terá de criar um comando SQL para inserir os dados no banco de dados...

    Dentro do DataContext do Entity Framework existe o método "ExecuteStoreCommand", onde vc pode passar um comando SQL para que o mesmo seja executado...


    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.wordpress.com/
    Twitter: @ferhenrique
    quarta-feira, 10 de agosto de 2011 12:43
    Moderador