[英]LINQ to Entities Include() does not work
以下LINQ to Entities查詢(使用EF 4.1 Code-First)應該基於“ Campaigns
和Users
創建視圖模型列表。 我每個廣告系列都有急切加載的Category
屬性,因此每個廣告系列都應該在其Category
引用屬性中填充適當的數據。 但似乎這種急切加載在某處丟失,因此我無法訪問類別: campViewModels[0].Campaign.Category
。 它始終為空。
var campViewModels = ctx.Campaigns
.Include(c => c.Category)
.Where(c => c.Title.Contains(searchText)).Join(
ctx.Users,
c => c.CampaignId,
u => u.CampaignId,
(c, u) => new {c, u})
.GroupBy(cu => cu.c)
.Select(g => new CampaignViewModel { Campaign = g.Key, MemberCount=g.Count()})
.OrderByDescending(vm => vm.MemberCount)
.Skip(pageIndex)
.Take(pageSize)
.ToList();
為了解決此問題,我更改了我的viewmodel定義並具有CategoryText
屬性並在我的查詢中填充它:
Select(g => new CampaignViewModel { Campaign = g.Key, MemberCount=g.Count(), CategoryText = g.Key.Category.Title})
但我很想知道阻止明確加載類別的原因是什么?
投影到新類型,使用join
或group by
,將忽略Include
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.