首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#/PLINQO -将同一实体分离并重新附加到同一上下文失败

C#/PLINQO -将同一实体分离并重新附加到同一上下文失败
EN

Stack Overflow用户
提问于 2011-05-06 03:44:01
回答 2查看 587关注 0票数 2

我正在为我的LINQ-TO-SQL数据层使用PLINQO。

我有下面这段代码(不是真正的代码,只是为了重现我得到的错误):

代码语言:javascript
复制
var context = new MyDataContext();
var user = context.User.GetByKey("username");
user.Detach();
context.User.Attach(user);

执行最后一行代码的结果是InvalidOperationException,并显示以下错误消息:“无法附加已存在的实体”。

我认为分离方法应该将实体从上下文中分离出来,看起来它只是移除了实体到上下文的链接,但是上下文仍然“记住”实体。

我怎样才能完全分离实体,这样我就不会得到错误?

谢谢,科比

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-07 00:02:34

我得出的结论是,我的设计是不正确的,没有考虑到linqtosql的限制,我对代码进行了更改,这样的情况就不会发生,如果会发生,就会抛出异常。

票数 1
EN

Stack Overflow用户

发布于 2011-05-11 17:35:55

尝试对附加的实体使用ObjectStateManager:

代码语言:javascript
复制
var context = new MyDataContext();
var user = context.User.GetByKey("username");
// change field values
...
user.AnyUserField = "123";
...
context.AcceptAllChanges();
context.ObjectStateManager.ChangeObjectState(user, EntityState.Added); // or use EntityState.Modified if it already exist anywhere
context.SaveChanges();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5903254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档