Include方法是加载子表数据的方法接收的参数就是子表的表名 db.Students.Include("ChildTableName")
如果想写成db.Students.Include(m=>m.ChildTableName)需要装什么插件么
@雨哥: 我可以确定你用的不是CodeFirst模式,应该是ModelFirst Or DBFirst 。CodeFirst继承的EF上下文是DbContext ,其它两种则是ObjectContext 。而Include(o=>o.Id) 这个方法 只在DbContetxt中才有,ObjectContext中只支持 Include("tableName")
@Zery:
我是这样啊,继承了DbContext 。还是不行
@雨哥: 真不好意思,之前是凭以前印象回答的,刚才仔细研究了一翻终于知道结果了接收表达示的Include方法其实并不是EF所提供的而是Linq提供的一个扩展方法
public static System.Linq.IQueryable<T> Include<T, TProperty>(this System.Linq.IQueryable<T> source, System.Linq.Expressions.Expression<Func<T,TProperty>> path)
所以这个方法只在IQueryable对象中才会有,你这样写Where(o=>o.Id==0).Include(o=>o.PartyA)
在include前加个where 方法后就可以找到你所需要的Include方法了,这个问题也让我更清楚了Include方法。感谢!
@Zery:
加了后,就找不到Include方法了,怎么办
@雨哥: 引入 using System.Data.Entity; 程序集
@Zery: 非常、非常感谢