2016-06-02 3 views
1

ich diese Linq-Abfrage haben:Linq-Array und die Summe als Teil der zurückgegebenen Datenmenge erhalten

var result = from game in db.Games 
        join gameevent in db.Events 
         on game.GameId equals gameevent.GameId 
        join birdLife in db.EventBirdCaptures 
         on gameevent.EventId equals birdLife.EventId 
        select new 
        { 
         game.GameId, 
         game.Name, 
         gameevent.LocationId, - array of all the location id's based on the game id 
         birdLife.BirdId - sum of all the birdids based on event id 
        }; 

Für die letzten beiden Ergebnisse, Standort-ID und Vogel ID Ich möchte für den Standort-ID-Array der IDs erhalten und die Summe der Vogel-IDs.

Wie ist das in linq möglich? Dank

+0

Bitte fügen Sie einige Ein- und Ausgang erwartet –

Antwort

1

Es ist mir nicht klar, was Sie fordern, aber wenn ich verstehe, was Sie wollen, Sie join-into verwenden können (Gruppe mitmachen) statt join:

var result = from game in db.Games 
      join gameevent in db.Events 
      on game.GameId equals gameevent.GameId into events 
      from _event in events 
      join birdlife in db.EventBirdCaptures 
      on _event.EventId equals birdlife.EventId into birds 
      select new 
      { 
       game.GameId, 
       game.Name, 
       locations = events.Select(e => e.LocationId), 
       birds = birds.Sum(b => b.BirdId) 
      }; 
Verwandte Themen