
Visual Studio 2015のC#でEntity Frameworkで出来たアプリで
データの編集をしているのですが
新しいレコードを作成し、レコードに追加しようとするとプライマリーキーを変更するとエラーになってしまいます
わざわざPKがかぶらないようにしたのですが・・・
元のデータを編集して、一部のデータを変えただけで新規のデータを作りたいのですが
こういった場合に新規データを作りたい場合はどうしたらいいのでしょうか
カラム数が多いのですが一部を書き換えて増殖したいだけなのです
using (var context = TBL_DBAccess.GetEntities()) var item = context.TABLENAME.Single(n => n.ID == id); //編集元のデータを持ってくる item.ID= 100; //ここがPK item.col1= 200; item.col2= "test"; context.TABLENEME.Add(item); //新しいレコードを追加★★★->プライマリーキーの変更は出来ませんというエラー //テーブルの書換 context.SaveChanges(); }

DB は何ですか? 対象のテーブルの構造は? ID は IDENTITY とかですか? 「元のデータを編集して新規のデータを追加」というのがそもそも解せないです。やってることは新規データの追加ではなく既存のデータの編集にみえます。であれば普通はそういうこと(主キーの変更)はしないはず。

質問者さんの回答への 2021/08/26 10:41 の私のコメントで「後で最初から最後まで Entity Framework を使った案を回答欄に書いておきます。」と書いた件、先ほど回答しておきましたので見てください。

回答3件
あなたの回答
tips
プレビュー





