我有一个与之相关的网格和数据集对象。 和数据层一起使用LINQ。所以我需要从LINQ数据源中删除网格中删除的元素。
我有一个将DataRow项转换为LINQ项的方法。例如:
DataRow forDelete = ...;
LinqItem itemForDelete = ConvertFromDataRow(forDelete);
dataContext.DeleteOnSubmit(itemForDelete);
此代码抛出异常,删除未附加到表的项目是不可能的。 但如果我把它改成
DataRow forDelete = ...;
LinqItem itemForDelete = ConvertFromDataRow(forDelete);
dataContext.Attach(itemForDelete)
dataContext.DeleteOnSubmit(itemForDelete);
它会抛出异常,即无法附加已经存在的项目。
问题是如何在这种情况下正确附加项目。这应该可以解决问题。
答案 0 :(得分:0)
异常是因为您正在尝试删除未经跟踪的项目。
在DeleteOnSubmit之前按ID查找。
更多信息:
http://msdn.microsoft.com/en-us/library/bb386982.aspx
和
答案 1 :(得分:0)
看起来这个问题没有正确的答案或没有办法做我需要的。