ef 查询报错,提示InvalidOperationException: 已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭。

CppFile 2017-03-20 03:09:47
var mm = BLL.StockReport.GetHistoryInStock(stockdate).ToList();
var test = from p in mm
from z in db.goodss

where z.GoodsID == p.GoodsID
from n in db.guests
where n.GuestID == p.GuestID
select p;
int total = test.Count();//这里报错

mm是一个list类型

查询的时候,提示

提示InvalidOperationException: 已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭。

似乎和mm是list有关系?难道不能这样查询吗?应该怎么做?
...全文
541 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
EnForGrass 2017-03-21
  • 打赏
  • 举报
回复
var mm = BLL.StockReport.GetHistoryInStock(stockdate);这个查询是EF? 给点建议。先单个查询写出来调试,看看具体问题在哪里,比如 var test = from p in tmplist select p; var test1= from z in db.goodss select z; 如果没问题,再组合查询看看
faib920 2017-03-21
  • 打赏
  • 举报
回复
如果是sqlserver可以在连接串里加上 MultipleActiveResultSets=true
正怒月神 版主 2017-03-21
  • 打赏
  • 举报
回复
GetHistoryInStock 方法贴出来看一下
CppFile 2017-03-20
  • 打赏
  • 举报
回复
var mm = BLL.StockReport.GetHistoryInStock(stockdate).ToList(); var i1= mm.Find(p => p.InStockID == "2015050810100200"); List<Models.InStock> tmplist = new List<Models.InStock>(); tmplist.Add(i1); var test = from p in tmplist from z in db.goodss where z.GoodsID == p.GoodsID from n in db.guests where n.GuestID == p.GuestID select p; int total = test.Count(); 改成这样,还是会出错,似乎是因为InStock这个实体的问题,这个实体,有一系列的属性,难道不能用list存放实体? 这些是InStock的实体的属性 public virtual ICollection<InStockProperty> instockpropertys { get; set; } public virtual ICollection<OutStock> outstocks { get; set; } public virtual ICollection<Money> moneys { get; set; } public virtual ICollection<StatusChange> statuschanges { get; set; } public virtual ICollection<FanCang> fancangs { get; set; }
  • 打赏
  • 举报
回复
简单的测试方式就是将mm那一段注销掉,然后看还报不报这个异常 不过你这个mm还真不知道是怎么读取出来的
丰云 2017-03-20
  • 打赏
  • 举报
回复
你这代码没有足够的语境环境给我们参考,无法准确的判断问题点在那里, 但可以肯定是,你这不是用的纯粹的ef,请不要跟ef扯上关系!!!

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧