ポイント
- スキャフォールディングによる自動生成のコードではすべてのカラムを更新してしまう。
- ウェブページからレコードの一部分を受け取って更新したい場合、自動生成コードを使うと受け取っていないカラムの値が無くなってしまう。
- よって、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();
おわりに
標準でありそうなものですけれども、、、、調べてもわかりませんでしたの><。
以上です。
