zoukankan      html  css  js  c++  java
  • Linq Cannot remove an entity that has not been attached错误解决方法(转)

    在做ling操作时遇到如下错误:

    Cannot remove an entity that has not been attached

    我的错误之处在于在同一个方法中,查询和删除使用不同的Data context。

    错误代码如下:

    protected  DataClassesDataContext DB  
    {  
         
    get  
         {  
             
    return new DataClassesDataContext();  
         }  
     }  
       
     
    private void DeleteOGU(int Id)  
     {  
         var ogu 
    = DB.OGUs.FirstOrDefault(x => x.OGU_SysID == Id);  
       
         DB.OGUs.DeleteOnSubmit(ogu);  
       
         DB.SubmitChanges();  
       
         BindData();  
     }  


    在Delete方法中,DB每次都是一个新的实例,所以DeleteOnSubmit的参数ogu其实和方法所在的data context并不在同一个对象中,也就出现如标题所示的错误。

     现将DB属性去掉,把它移入Delete方法中。

     private void DeleteOGU(int Id)  
     {  
         var DB 
    = new DataClassesDataContext();   
       
         var ogu 
    = DB.OGUs.FirstOrDefault(x => x.OGU_SysID == Id);  
       
         DB.OGUs.DeleteOnSubmit(ogu);  
       
         DB.SubmitChanges();  
       
         BindData();  
     }  


    此时方法中的所有DB都指向同一个对象,错误自然被排除。

    转自:http://blog.csdn.net/duwa789/archive/2010/05/06/5563714.aspx

  • 相关阅读:
    17、静态链表
    16、约瑟夫问题
    15、循环链表
    9、插入排序
    14、企业链表
    13、单向链表
    12、顺序表的顺序存储结构
    11、归并排序
    10、快速排序
    原型模式
  • 原文地址:https://www.cnblogs.com/scottckt/p/1879755.html
Copyright © 2011-2022 走看看