linq查询时查询语句中附带多个查询时“已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭”

主要原因是因为EF采用的 DataReader来进行数据的存储,此时connection使用的是同一个。

例如: list = _tzNewsService.GetAll().Where(w => w.EditorId == AdminId || (w.CheckStatus == 3&&_administratorService.GetById(w.EditorId).OrganizeId==currentadmin.OrganizeId)).OrderByDescending(w => w.PubDate).ToList();

涉及tznews查询覆盖条件中带了administrator的查询。

解决方案:

在数据库连接字符串中添加MultipleActiveResultSets=true即可,示例如下:

server=.;Integrated Security = true;database=Test;MultipleActiveResultSets=true;

posted @ 2018-05-30 10:36  风枫疯  阅读(761)  评论(0编辑  收藏  举报