linq to sql join su più colonne con lambda

Qualcuno mi può aiutare a tradurre questo

var query = from s in context.ShoppingMalls
join h in context.Houses
on
new { s.CouncilCode, s.PostCode }
equals
 new { h.CouncilCode, h.PostCode }
select s;

in lambda query?

Grazie.

InformationsquelleAutor spdro | 2012-04-25

 

2 Replies
  1. 46
    var query = context.ShoppingMalls
                       .Join(
                           context.Houses,
                           s => new { s.CouncilCode, s.PostCode },
                           h => new { h.CouncilCode, h.PostCode },
                           (s, h) => s);
    • a cura di dare anonimo oggetti di chiavi, in modo che il compilatore è in grado di dedurre che i tipi sono gli stessi.
    • Non so dove il tuo edit è andato, ma se i nomi e i tipi non sono lo stesso si può fare qualcosa di simile per entrambi il join oggetti, in modo che i nomi delle proprietà match: nuovo { cc = s.CouncilCode, pc = s.Codice postale }
  2. 6

    Anche se l’esempio e la risposta data da @Thomas Levesque opere per le colonne che corrispondono, ho voluto anche fornire la risposta, se ci sono delle colonne di unirsi, ma hanno nomi diversi. Questo è quello che mi serviva per il mio googling e questa domanda mi ha fatto chiudere.

    La differenza, naturalmente, è la dichiarazione esplicita delle colonne come una variabile per identificare in.

    var query = context.MapKitsToResources
                  .Join(
                         context.Resources, 
                         o => new { Id = o.ResourceId, Type = o.ResourceTypeId},
                         i => new { Id = i.Id, Type = TypeId},
                         (o, i) = new { rType : i };

Lascia un commento