1

私のアプリでは、モデルの特定のプロパティのすべての変更をデータベースに記録したいと考えています。だから私はこのモデルを持っているとしましょう:

public class  MyModel
{
    public int x1 {get; set;}
    public int x2 {get; set;}
}

そして、このモデルには編集アクションがあります:

[HttpPost]
public ActionResult Edit(MyModel model)
{
    if (ModelState.IsValid)
    {
        db.Entry(model).State = EntityState.Modified;
        db.SaveChanges();
        return RedirectToAction("Index");
    }
    return View(model);
}

そして、この編集アクションで、プロパティ x1 が変更されたかどうかを判断したいのですが、変更された場合は別のテーブルにログを作成しますが、どのプロパティが変更されたかを判断する方法がわかりません。誰かが私にそれを行う方法を教えてもらえますか?

前もって感謝します。

4

3 に答える 3

0

だから私はデータベースへの余分なヒットでそれをしました:

    [HttpPost]
    public ActionResult Edit(MyModel model)
    {
        if (ModelState.IsValid)
        {
            MyModel m = db.MyModels.Find(model.MyModelId);
            if (m.x1 != model.x1)
                //Fire log function here

            db.Entry(model).State = EntityState.Modified;
            db.SaveChanges();
            return RedirectToAction("Index");
        }
        return View(model);
    }

しかし、より良い解決策があれば、それを聞いてうれしいです。ありがとうございました。

于 2013-10-16T16:51:24.233 に答える