重新填充实体框架导航属性

时间:2011-10-12 02:37:51

标签: entity-framework entity-framework-4 entity-framework-4.1

您好我有一个MVC应用程序我正在调用存储过程。我使用存储过程的原因是因为查询非常复杂并且已经存在,所以我也可以使用它。

它基本上归还给我一个:

IEnumerable<Activity>

这很好。

有许多外键属性中的一个,如:

AreaId

就此填充。

但是在我的模型中,我有导航属性:

// Navigation properties
        public virtual Area Area { get; set; }

当然没有填充通过存储过程获取它。

我想知道是否有一种简单的方法可以填充这些导航属性。

我相信我听说过一些命令,你可以调用你的实体刷新导航属性。

1 个答案:

答案 0 :(得分:1)

您可以使用:

context.Entry(loadedEntity).Reference(l => l.Area).Load();

但如果为枚举中的每个实体调用它,它将没有很好的性能,因为它将为您要加载的每个Area执行单独的查询和数据库往返。这是使用存储过程的缺点 - 一旦你这样做,你应该有另一个存储过程来加载所有需要的区域。