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

  • 相关阅读:
    数组字符串
    return语句
    函数
    js流程控制语句
    js数据类型
    精进:如何成为一个很厉害的人---书摘(转)
    生成随机的数字和字母组合
    modelAndView重定向到外网
    mysql. 替换数据库中某个字段
    java中对于时间的处理
  • 原文地址:https://www.cnblogs.com/scottckt/p/1879755.html
Copyright © 2011-2022 走看看