获取最新子项的属性作为实体框架(EF)中的计算属性

时间:2014-02-14 02:03:16

标签: c# entity-framework ef-code-first asp.net-mvc-5 entity-framework-6

数据库背景:

-Parent
|- ChildCollection (with dates)
 |- ChildStatus (FK in Child object.  ChildStatus is a lookup value)

我在数据库关系的上下文中使用child。继承不是这里的一个因素。

我想要的是,在我的父对象中,从数据库获取并将最新日期存储在子集合中,以及附加到该子对象的状态。最终目标是能够说Parent.LastDate(作为DateTime对象)和Parent.LastStatus(作为ChildStatus对象)

我发现了很多关于如何处理父项内计算字段或者计算子项数的帖子,但没有明确加载实际急切加载对孙子实体的引用的方法儿童系列。

如果我只是将Parent作为我的模型在MVC中传递而不包含子实体,我希望这两个对象可用。

我想更好的问题是“我该怎么做?”这是我应该创建视图并在视图中填充其他属性的情况吗?我还没有处理过观点,所以这可能是对我理想架构的一个简单误解......

1 个答案:

答案 0 :(得分:2)

如果我理解正确,这就是你的代码应该是这样的:

var latestChild = Parent.ChildCollection.OrderByDescending(c => c.Date).FirstOrDefault();

if(latestChild != null) 
{
    Parent.LastDate = latestChild.Date;
    Parent.LastStatus = latestChild.ChildStatus;
}