LINQ to Entities Include()不起作用

本文关键字:不起作用 Include to Entities LINQ | 更新日期: 2023-09-27 18:09:41

下面的LINQ to Entities查询(使用EF 4.1 Code-First),应该创建一个基于CampaignsUsers的视图模型列表。我有每个活动的热切加载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();  

为了解决这个问题,我已经改变了我的视图模型定义,并有CategoryText属性,并在我的查询中填充它:

Select(g => new CampaignViewModel { Campaign =  g.Key, MemberCount=g.Count(), CategoryText = g.Key.Category.Title})  

但我很想知道是什么阻止了类别的显式加载?

LINQ to Entities Include()不起作用

Include在投影到新类型时被忽略,使用joingroup by