我目前正在构建一个ASP.NET MVC应用程序,允许管理员用户添加,编辑和删除用户。对于应用程序,我有3个不同的数据库表,称为AdminUsers,Users和AuditChanges。每次添加,编辑或删除用户时,我都希望它根据需要更新Users表,这不是问题。除此之外,我还希望应用程序在AuditChanges表中写入一个条目,该表说明处理该功能的管理员,更新了哪个用户以及处理了哪种类型的功能,例如:编辑或删除。我目前正在努力的是更新多个数据库,并想知道这是否可行?
例如:
如果我要访问“创建用户”页面并添加用户,我希望我的用户表格如下所示:
UserID BranchNumber
U123456 1234
但是我还希望我的AuditChanges表看起来像这样:
AdminID UserID BranchNumber Type
U654321 U123456 1234 Add
U235874 U192395 4321 Edit
U827734 U283849 9999 Delete
这样我就可以跟踪谁更新了Users表以及他们一直在更新它的内容。
控制器
public ActionResult Edit(int id)
{
Users user = db.Users.Find(id);
return View(user);
}
[HttpPost]
public ActionResult Edit(Users user)
{
if (ModelState.IsValid)
{
db.Entry(user).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(user);
}
public ActionResult Create()
{
return View();
}
[HttpPost]
public ActionResult Create(Users user, AuditChanges changes)
{
if (ModelState.IsValid)
{
db.Users.Add(user);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(user);
}
public ActionResult Delete(int id)
{
Users user = db.Users.Find(id);
return View(user);
}
//
// POST: /Errors/Delete/5
[HttpPost, ActionName("Delete")]
public ActionResult DeleteConfirmed(int id)
{
Users user = db.Users.Find(id);
db.Users.Remove(user);
db.SaveChanges();
return RedirectToAction("Index");
}
模型
[Table("CTP_Users")]
public class Users
{
[Key]
public int Id { get; set; }
public string LogonId { get; set; }
public string BranchNumber { get; set; }
}
[Table("CTP_Users")]
public class Users
{
[Key]
public int Id { get; set; }
public string LogonId { get; set; }
public string BranchNumber { get; set; }
}
如果您需要更多信息,请告知我们。
提前致谢。