ポイント
- スキャフォールディングによる自動生成のコードではすべてのカラムを更新してしまう。
- ウェブページからレコードの一部分を受け取って更新したい場合、自動生成コードを使うと受け取っていないカラムの値が無くなってしまう。
- よって、Find でレコードを取得し、値を変更した後、SaveChanges で更新する。
スキャフォールディングによる自動生成の更新コード
db.Entry(cls).State EntityState.Modified; dv.SaveChanges();
レコードの一部分のみを更新するコード
Class target = db.Classes.Find(cls.GroupId, cls.ClassId); if (target == null) { throw new ArgumentException(); } target.ClassName = cls.ClassName; target.UpdateUserId = cls.UpdateUserId; target.UpdateTime = DateTime.Now; db.SaveChanges();
おわりに
標準でありそうなものですけれども、、、、調べてもわかりませんでしたの><。
以上です。