[英]Use Linq to shortlist parent records by using Entity Framework relations
我在Visual Studio 2013中有一個使用DB-First Entity Framework 5和.NET Framework 4.5的項目。我有一個一般的要求,我將使用一個示例進行解釋:在數據庫中,有以下表格:
在.NET中創建實體模型后,我的公司類包含以下字段,其中包括:
public virtual ICollection<company_user> company_user { get; set; }
我想編寫一個linq查詢,該查詢基於其company_user集合中至少一個記錄具有Id == x的條件為我提供了一個來自公司集合的過濾記錄集,其中x是某個用戶ID。 這意味着我想獲取與某個用戶相關的所有公司的列表。 目前,我正在這樣做,這...並不優雅:
var cList1 = (from c in db.companies
join cu in db.company_user on c.Id equals cu.CompanyId
select new
{
CompanyId = cu.CompanyId,
UserId = cu.UserId,
CompanyName = c.Name
}).ToList().Where(x => x.UserId == u.Id);
List<company> companies = new List<company>();
foreach (var cv in cList1)
{
company c = new company();
c.Id = cv.CompanyId;
c.Name = cv.CompanyName;
companies.Add(c);
}
//companies now has the set of companies that I need
請幫助我編寫最簡潔的查詢以實現相同的效果。
在此先感謝Zawar
怎么樣:
db.companies.Where(c => c.company_user.Any(cu => cu.UserId == u.Id));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.