2012-04-26 40 views
1

我對EF和LINQ有點新鮮,每當我超越基礎知識時,我開始對如何解決更高級的查詢感到困惑。使用LINQ查詢實體框架,我應該怎麼做連接?

enter image description here

在我的例子,我試圖返回與包括多少報告該用戶具有計數的用戶關聯的頻道列表。我已經儘可能的查詢下面,但我堅持如何包括報告計數...任何幫助將不勝感激。

var query = from c in _channelRepository.GetTable().Include("User") 
        where c.UserId == user.Id && c.IsActive == true 
        orderby c.Name 
        select c; 

回答

1

你可以通過創建一個新的類(POCO)與你想要的所有屬性來實現這一點。

例如

public class ChannelsWithCount 
{ 
    public Channel Channel { get; set; } 
    public User User { get; set; } 
    public int? ReportsCount { get; set; } 
} 

var query = from c in _channelRepository.GetTable() 
      where c.UserId == user.Id && c.IsActive == true 
      orderby c.Name 
      select new ChannelsWithCount 
      { 
       Channel = c, 
       User = c.User, 
       ReportsCount = c.User.Reports.Count(), 
      }