我想对负载相关实体使用预先加载,我看到this page:
在这个例子中,我可以看到有两种获取相关实体的方法:
var princesses1 = context.Princesses
.Include(p => p.Unicorns)
.ToList();
var princesses1 = context.Princesses
.Include("Unicorns")
.ToList();
第一种方法是使用lambda表达式(我认为正确的名称是,如果没有,请更正我),第二种方法是使用带有相关实体名称的字符串。
在我的情况下,我可以使用第二种,因为在第一种方式中,当我无法获得lambda表达式中相关实体的属性时。我使用这段代码:
IQueryable<Customers> myQuery;
myQuery = myContext.Customers.Include("Orders");
但如果我尝试使用第二种方式:
IQueryable<Customers> myQuery;
myQuery = myContext.Customers.Include(c=>c.?????);
我无法选择订单属性。
为什么?
答案 0 :(得分:2)
您应该使用System.Data.Entity
以便能够在Include
方法中使用lambda表达式:
using System.Data.Entity;
答案 1 :(得分:1)
将其添加到文件顶部:
using System.Data.Entity;
这包括对DbExtensions类的引用,该类提供了包含扩展方法。