zoukankan      html  css  js  c++  java
  • 已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭

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

    引用:   http://www.cnblogs.com/maxao/archive/2011/03/18/1988168.html 

    在运用Linq to sql 或者 linq to entity等相关linq技术进行数据库访问操作时,如果发生上述异常是因为是因为.NET內部是使用DataReader作数据存取,DataReader用同一个Connection。

    解决办法有两个:

    1,设定ConnectionString加上MultipleActiveResultSets=true,但只适用于SQL 2005以后的版本
    2.先读出放置在List中

    例如将

     

    var preObj = (from a in db.ArticleEAP
                              
    where a.ArticleID < id
                              orderby a.ArticleID descending
                              select 
    new { a.ArticleID, a.ArticleTitle })

    改为

     

    var preObj = (from a in db.ArticleEAP
                              
    where a.ArticleID < id
                              orderby a.ArticleID descending
                              select 
    new { a.ArticleID, a.ArticleTitle }).ToList()


    ToList之后就被读到内存中了,与DataContext脱钩了!

  • 相关阅读:
    hlgoj 1766 Cubing
    Reverse Linked List
    String to Integer
    Bitwise AND of Numbers Range
    Best Time to Buy and Sell Stock III
    First Missing Positive
    Permutation Sequence
    Next Permutation
    Gray Code
    Number of Islands
  • 原文地址:https://www.cnblogs.com/davytitan/p/4579862.html
Copyright © 2011-2022 走看看