添加,编辑或删除后更新2个表

时间:2015-11-30 13:54:50

标签: c# asp.net asp.net-mvc entity-framework

我目前正在构建一个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; }
}

如果您需要更多信息,请告知我们。

提前致谢。

0 个答案:

没有答案