none
IQueryable Join com chave múltipla RRS feed

  • Pergunta

  • Tenho a seguinte entidade no EntityFramework:

    tb_notas(
    PK id_documento,
    PK tempo,
    PK corda,
    PK dist,
    nota,
    dist1,
    dist2,
    dist3)

    Preciso realizar operações de Join e Where em tempo de execução, então me indicaram IQueryable para eu poder usar seus métodos, porém estou com dificuldade em fazer o Join, visto que a junção será com a própria tabela, a chave é composta, não vou usar todas colunas na chave para a cláusula On do Join, vou usar colunas não chave para o On do Join, e ainda preciso somar 1 em um dos lados na comparação.

    Vou escrever o trecho como imagino que deveria funcionar (mas não funciona), pois vai ficar mais fácil de entender:

    dbTabEntities db = new dbTabEntities();
    
    IQueryable<tb_notas> tn = db.tb_notas.AsQueryable();
    IQueryable<tb_notas> tn2 = db.tb_notas.AsQueryable();
    
    tn = tn.Join(tn2, k1 => new {k1.id_documento, k1.tempo}, k2 => new {k2.id_documento, k2.tempo + 1}, (k1, k2) => new {doc = k1.id_documento});

    Na prática é fazer um INNER JOIN entre a mesma entidade quando o id_documento for o mesmo e o tempo de um for igual ao tempo do outro mais 1.

    Precisava disso pra ontem, é pra um trabalho :-/

    Desde já agradecido.

    terça-feira, 29 de outubro de 2013 01:01

Todas as Respostas

  • Como finalidade realmente!

    Talvez eu até veja uma outra solução mais simples

    Você poderia fazer a SQL mesmo e mandar! eu vendo eu posso tentar te ajudar com o Linq!

    Assim ta vago e não entendi nada!


    Fúlvio Cezar Canducci Dias

    quarta-feira, 30 de outubro de 2013 02:44
  • Esse eu já resolvi de outra forma... se conseguir me ajudar a resolver o outro eu agradeço.
    quarta-feira, 30 de outubro de 2013 09:34