I have this code:
public class DeckOccurrences
{
public string DeckGuid { get; set; }
public int Count { get; set; }
}
public class Deck
{
public string DeckGuid { get; set; }
public string Name { get; set; }
}
public class DeckSource
{
public string DeckGuid { get; set; }
public string Name { get; set; }
}
var decks = App.EF.Db2.Deck.ToList();
var decksources = App.EF.Db2.DeckSource.ToList();
Previously I had this query but now I would like to do it using LINQ:
select d.deckguid, count(de.deckguid) as Count
from decksource d
left join deck de on d.deckguid = de.deckguid group by d.deckguid
Can someone help by giving me some advice on where I should start with trying to do a query like this?
Update showing code used:
List<DeckOccurrences> res = (from d in App.EF.Db2.DeckSource
join de in App.EF.Db2.Deck on d.DeckSourceId equals de.DeckGuid into j1
from j2 in j1.DefaultIfEmpty()
group j2 by d.DeckSourceId into grouped
select new DeckOccurrences()
{
DeckGuid = grouped.Key,
Count = grouped.Count(t => t.DeckGuid != null)
}).ToList();