我在linq数据库中检索到的一些数据有问题。当我试图访问数据时,我获得了以下例外: System.ObjectDisposedException : ObjectContext的地位被删除,并且不可能再次用于需要连接的操作。这是代码:
using (ProvaDbEntities DBEntities =
new ProvaDbEntities(Utilities.ToEntitiesConnectionString()))
{
ObjectQuery<site> sites = DBEntities.site;
IEnumerable<site> q = from site in sites
select site;
{
ObjectQuery<auction> auctions = DBEntities.auction;
IEnumerable<auction> q1 = from auction in auctions
where auction.site == this.Name
select auction;
IEnumerable<IAuction> res = q1.Cast<IAuction>();
return res;
}
}
catch(Exception e)
{
throw new UnavailableDbException("[GetAuctions]" + e.Message);
}有人能帮我吗?法比奥坦克
发布于 2010-07-05 20:39:38
是的--您正在返回一个将被延迟计算的结果--但是您正在处理用于获取结果的数据上下文。
选项:
ToList 后,这可能不是一个好主意
在这种情况下,我建议使用第一个选项-它将是安全和简单的。由于您已经在过滤结果,并且无论如何都要转换为IEnumerable<IAuction>,所以您不太可能在早期实现查询时遇到正常的缺点。(如果仍然是IQueryable<T>,您将放弃向查询添加额外位的能力,并且它们仍然被转换为SQL。)
https://stackoverflow.com/questions/3182015
复制相似问题