【发布时间】:2013-04-14 02:18:13
【问题描述】:
我刚刚升级了我的应用程序的一种方法以使用已编译的查询(不确定这是否相关)。现在,当我运行代码时,我收到了相互矛盾的错误消息。
这是我的方法:
MyClass existing = Queries.MyStaticCompiledQuery(MyRequestScopedDataContext, param1, param2).SingleOrDefault();
if (existing != null)
{
MyRequestScopedDataContext.MyClasses.DeleteOnSubmit(existing);
}
当我运行它时,我会收到以下消息:
无法删除没有 已附上。
请注意,编译后的查询和 DeleteOnSubmit 引用相同的 DataContext。我仍然认为我会幽默地应用程序并在 DeleteOnSubmit 之前添加一个附加命令,如下所示:
MyClass existing = Queries.MyStaticCompiledQuery(MyRequestScopedDataContext, param1, param2).SingleOrDefault();
if (existing != null)
{
MyRequestScopedDataContext.MyClasses.Attach(existing);
MyRequestScopedDataContext.MyClasses.DeleteOnSubmit(existing);
}
但是...当我运行这段代码时,我得到一个完全不同的矛盾错误信息:
已尝试附加或 添加一个不是新的实体,也许 从另一个加载 数据上下文。这不受支持。
我完全不知所措......
有其他人知道为什么我不能通过我从中检索到的同一 DataContext 删除记录吗?
【问题讨论】:
标签: c# .net linq-to-sql