2012-01-16 1 views
3

が存在するエンティティをアタッチすることはできません: は、メッセージを取得し、すでに次のコードについては

が既に存在するエンティティをアタッチすることはできません。

C#コード:

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

なぜそれがこのエラーを与えている -

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

が行われた際に詐欺への参照が既に を作ったので、これはありますか?

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

コンテキストがすでにオブジェクトに「接続」されています。あなたはすでにテーブルから項目を取得しているので

+1

これをORMフレームワークでタグ付けするのはどうですか? – CodesInChaos

+0

[既に存在するエンティティを添付できません](http://stackoverflow.com/questions/2605657/cannot-attach-anent-that-already-exists)の複製が可能です。 –

答えて

4

。これは、既存のオブジェクトをテーブルから取り出すときに当てはまります。あなたが行を削除する場合

cmsContentTable.Attach(con); 

あなたは問題ないはずです。

さらに役立つメッセージは、実際に起こっているように、「コンテキストに既に関連付けられているエンティティに接続できません」というメッセージです。

関連する問題