2011-01-05 8 views
0

StackOverFlow half mir auf einem anderen Beitrag, um die LINQ unten zu konstruieren. Wie kann ich den LINQ ändern, um eine zweite Bedingung anzuwenden und einer zweiten Tabelle beizutreten? Die zweite, in der sich die Bedingung befindet, wird eine Spalte in der zweiten Tabelle anzeigen.Get Durchschnitt mit LINQ und Join mehrere Tabellen

var ratingAverage = ctx.Rates.Where(r => r.Id == Id) 
    .GroupBy(g => g.Id, r => r.Rating) 
    .Select(g => new { Id = g.Key, Rating = g.Average() }); 

Der LINQ oben wird den Durchschnitt und die Gruppe durch die ID erhalten. I. E., ich habe einen Volkstisch. Ich möchte die People-Tabelle in den LINQ aufnehmen und die Where-Bedingung erweitern, die auf PersonId gefiltert werden soll. Die ID in der Tabelle Bewertung ist ein Fremdschlüssel in der Tabelle Personen.

Vielen Dank für die Hilfe gegeben.

Antwort

0
int ratingId = 1; 
int personId = 9; 

var ratingAverage = ctx.Rates.Where(
    r => r.Id == ratingId && r.Person.Id == personId) 
    .GroupBy(g => g.Id, r => r.Rating) 
    .Select(g => new { Id = g.Key, Rating = g.Average() });