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

  • 相关阅读:
    numpy的shuffle函数
    特征值、特征向量
    keras的Embedding层
    自己写着玩的一个天气APP
    使用mbed进行STM32板子的开发
    提高ListView的效率
    自定义ListView里面的Item的内容
    Android控件使用自定义字体
    使用Handler类来更新UI
    MongoDB在Java下的增删查改
  • 原文地址:https://www.cnblogs.com/scottckt/p/1879755.html
Copyright © 2011-2022 走看看