linq-to-sql“无法删除尚未附加的实体”

2024-01-08

我收到错误Cannot remove an entity that has not been attached.当我尝试删除一条记录时。我用谷歌搜索了一下,虽然有很多地方可以找到解决这个问题的解决方案,但建议的修复方案并没有让我更进一步:

using (MyDataContext TheDC = new MyDataContext())
{
  TheDC.MyTable.Attach(ARecord); //added this line but doesn't fix it.
  TheDC.MyTable.DeleteOnSubmit(ARecord);
  TheDC.SubmitChanges();

我更大的问题是:这个问题只影响删除查询还是也影响其他类型的查询,我只是还没有遇到这个问题。我已经编写了一个更新查询,它似乎可以正常工作,而不会遇到此错误。

Thanks.


请参考这篇SO帖子:如何在 linq to sql 中删除? https://stackoverflow.com/questions/1319981/how-to-delete-in-linq-to-sql

...关于附加,如果您已经有了主键。如果您没有主键,那么我总是先进行获取,然后进行删除,但是,每当我进行获取时,我倾向于存储主键以进行更新和删除。

它将删除主键,但如果您有主键,则只需按照我下面的操作附加并调用删除即可。我不传递 DLINQ 所需的对象,因为我希望能够根据需要更改它,因此我传入一个不同的 User 对象,然后从业务类中提取 PK 并将其放入 DAO 类中。

var db = new MeatRequestDataContext();            
if (input.UserID > 0)
{
     entity = new User()
     {
         UserID = input.UserID
     };
     db.Users.Attach(entity);
     db.Users.DeleteOnSubmit(entity);
 }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linq-to-sql“无法删除尚未附加的实体” 的相关文章

随机推荐