EntityFramework中查询结果的返回
public IQueryable<Customers> Cust5()
{
using (var edm = new NorthwindEntities())
{
var cust= edm.Customers.OrderBy(c => c.CustomerID.Skip(0).Take(5));
return cust;
}
}
这个方法在一个程序集中,在另一个程序集中使用这个方法,但是返回的是接口(也就是指针),在调用程序集中:
var cust=dal.Cust5();
foreach(var c in cust)
Console.WriteLine("CustomerID={0}", c.CustomerID);
执行提示:
此 ObjectContext 实例已释放,不可再用于需要连接的操作。用什么办法返回这个查询结果数据呢?
[解决办法]
linq有个延迟加载的概念
就是当要用的时候才去搜索
但你用了using 执行查询后 就没了 没有到要用时就释放了
public List<Customers> Cust5()
{
using (var edm = new NorthwindEntities())
{
var cust= edm.Customers.OrderBy(c => c.CustomerID.Skip(0).Take(5)).ToList();
return cust;
}
}
第二个问题 应该是没有加载程序集把
另外貌似skip和take是要先用orderby的