无法附加已存在的实体

时间:2012-01-16 22:26:02

标签: c# model-view-controller

对于以下代码,获取消息:

  

无法附加已存在的实体。

C#代码:

var con = (from c in cmsContentTable where c.ContentName == contentId select c).FirstOrDefault();
cmsContentTable.Attach(con);
con.ContentData = "New Value";
cmsContentTable.Context.SubmitChanges(); 

为什么会出现此错误 - 这是因为已经提出了对con的引用 什么时候

var con = (from c in cmsContentTable where c.ContentName == contentId select c).FirstOrDefault();

完成了吗?

1 个答案:

答案 0 :(得分:4)

由于您已经从表中获取该项目:

var con = (from c in cmsContentTable where c.ContentName == contentId select    c).FirstOrDefault();

上下文已经“附加”到对象上。每当从表中提取已存在的对象时都是如此。

如果删除该行:

cmsContentTable.Attach(con);

你应该没事。

更有用的消息是“无法附加到已附加到上下文的实体”,因为这实际上正在发生。