0

Domain Model Module に基づく Modules というテーブルがあります。新しいモジュールを追加したい場合は、これを行うことができます

 _db.Modules.Add(module);//module is object of type Module
    _db.SaveChanges();

今、削除したい場合はできます

_db.Modules.Remove(module);

しかし、以下の私のdeleteメソッドでは、IDのみを渡す場合、どうすればこれを達成できますか? 以下を実行しようとしましたが、うまくいきません。変更はありません。行はまだ存在します。

 _db.Modules.Remove(_db.Modules.Find(module.Id));

ここに削除方法があります

public ActionResult DeleteModule(long id)
        {

            var module = new Module {Id = id};
            _db.Modules.Remove(_db.Modules.Find(module.Id));
            _db.SaveChanges();

            //_db.Modules.Remove(module);
            Information("Your widget was deleted");
            return RedirectToAction("ModuleList", "Module", new { area = "Hardware" });
        }

行を削除するにはどうすればよいですか? メソッドのパラメーターとして渡される Id 値に基づきます。

4

2 に答える 2

1

これを試して:

var module = new Module() { Id = id };
_db.Entry(module).State = EntityState.Deleted;
_db.SaveChanges();
于 2013-06-26T14:36:22.287 に答える
1

新しい Module オブジェクトを作成する代わりに、Module を見つけて削除することができます。

public ActionResult DeleteModule(long id)
{ 
   var module = _db.Modules.FirstOrDefault(m => m.Id == id);
   _db.Modules.Remove(module);
   _db.SaveChanges();
   ...
}
于 2013-06-26T14:47:58.143 に答える