Entity framework 。以下查询中的包含不包括 var diaryEntries=(来自repository.GetQuery()中的条目) .包括(“日记条目等级变更日志”) .包括(“日记事件”) 在repository.GetQuery()中加入日志 在entry.DiaryId等于diary.Id时 组条目 记日记 进入日记中心组 选择新建{Diary=diaryEntriesGroup.Key, DiaryEntry=diaryEntriesGroup.OrderByDescending(DiaryEntry=>DiaryEntry.DateModified).FirstOrDefault(), });
此查询不包括“DiaryEntryGradeChangeLog”和“DiaryEntryAction”导航属性,此查询有何错误 我已经从查询中删除了join,并按照下面的说明进行了更正,但它仍然没有填充任何内容Entity framework 。以下查询中的包含不包括 var diaryEntries=(来自repository.GetQuery()中的条目) .包括(“日记条目等级变更日志”) .包括(“日记事件”) 在repository.GetQuery()中加入日志 在entry.DiaryId等于diary.Id时 组条目 记日记 进入日记中心组 选择新建{Diary=diaryEntriesGroup.Key, DiaryEntry=diaryEntriesGroup.OrderByDescending(DiaryEntry=>DiaryEntry.DateModified).FirstOrDefault(), });,entity-framework,include,Entity Framework,Include,此查询不包括“DiaryEntryGradeChangeLog”和“DiaryEntryAction”导航属性,此查询有何错误 我已经从查询中删除了join,并按照下面的说明进行了更正,但它仍然没有填充任何内容 var diaryEntries = (from entry in repository.GetQuery<OnlineDiary.Internal.Model.DiaryEntry>() .Include("Di
var diaryEntries = (from entry in repository.GetQuery<OnlineDiary.Internal.Model.DiaryEntry>()
.Include("DiaryEntryGradeChangeLog")
.Include("DiaryEntryAction")
join diary in repository.GetQuery<OnlineDiary.Internal.Model.OnlineDiary>()
on entry.DiaryId equals diary.Id
group entry
by diary
into diaryEntriesGroup
select new { Diary = diaryEntriesGroup.Key,
DiaryEntry = diaryEntriesGroup.OrderByDescending(diaryEntry => diaryEntry.DateModified).FirstOrDefault(),
});
var diaryEntries=from repository.GetQuery()中的条目
.Include(“DiaryEntryGrade变更日志”).Include(“DiaryEntryAction”)
.式中(e=>1==1)
组条目
通过entry.online日记
分为日记条目组
挑选
new{DiaryEntry=diaryEntryGroups.OrderByDescending(DiaryEntry=>DiaryEntry.DateModified).FirstOrDefault()};
它不会Include
仅在查询的形状没有改变(按设计)时才起作用。如果使用此查询,它将起作用,因为查询的形状仍然相同(OnlineDiary.Internal.Model.DiaryEntry
):
或者任何类似的查询,在该查询中,您手动填充属性,以便将关系投影到匿名或未映射类型。它只是说它们为null,即使我可以在数据库中正确地看到它们。澄清一下,“不填充任何内容”是指
日记条目
为null吗?或者,IQueryable
是否可以不带项目?或者使用具有空属性的正确数量的对象填充?diaryEntries正在使用DiaryEntry集合填充,这很好。。。“DiaryEntryGradeChangeLog”集合和“DiaryEntryAction”导航属性为空。因此,您不能使用包含
,必须使用更复杂的投影(将加载相关数据)或通过单独的查询加载相关数据。连接导致了问题,但选择应该可以,因为它是在计算完结构后应用的?请参阅问题的编辑版本,我已经在修订的查询中放置了,但它仍然没有填充任何内容,您仍然在使用分组和投影。您不能在这样的查询中使用Include。我感兴趣的是,这种工作方式是“设计的”——rational在这个决定背后可能是什么?
var diaryEntries = from entry in repository.GetQuery<OnlineDiary.Internal.Model.DiaryEntry>()
.Include("DiaryEntryGradeChangeLog").Include("DiaryEntryAction")
.Where(e => 1 == 1)
group entry
by entry.OnlineDiary
into diaryEntryGroups
select
new { DiaryEntry = diaryEntryGroups.OrderByDescending(diaryEntry => diaryEntry.DateModified).FirstOrDefault() };
var diaryEntries = (from entry in repository.GetQuery<OnlineDiary.Internal.Model.DiaryEntry>()
.Include("DiaryEntryGradeChangeLog")
.Include("DiaryEntryAction");
var diaryEntries = from entry in repository.GetQuery<OnlineDiary.Internal.Model.DiaryEntry>()
group entry by entry.OnlineDiary into diaryEntryGroups
let data = diaryEntryGroups.OrderByDescending(diaryEntry => diaryEntry.DateModified).FirstOrDefault()
select new {
DiaryEntry = data,
GradeChangeLog = data.DiaryEntryGradeChangeLog,
Action = data.DiaryEntryAction
};