您好我有一个MVC应用程序我正在调用存储过程。我使用存储过程的原因是因为查询非常复杂并且已经存在,所以我也可以使用它。
它基本上归还给我一个:
IEnumerable<Activity>
这很好。
有许多外键属性中的一个,如:
AreaId
就此填充。
但是在我的模型中,我有导航属性:
// Navigation properties
public virtual Area Area { get; set; }
当然没有填充通过存储过程获取它。
我想知道是否有一种简单的方法可以填充这些导航属性。
我相信我听说过一些命令,你可以调用你的实体刷新导航属性。
答案 0 :(得分:1)
您可以使用:
context.Entry(loadedEntity).Reference(l => l.Area).Load();
但如果为枚举中的每个实体调用它,它将没有很好的性能,因为它将为您要加载的每个Area
执行单独的查询和数据库往返。这是使用存储过程的缺点 - 一旦你这样做,你应该有另一个存储过程来加载所有需要的区域。