如何在创建方法[asp.net mvc]中填充两个表

时间:2018-10-12 14:28:57

标签: sql asp.net asp.net-mvc database

我的数据库中有两个表:referentsusers

Referents:
FirstName|LastName|Phone|Password|ConfirmPassword|UserName|Email

还有

Users:
FirstName|LastName|UserRole|Password|ConfirmPassword|UserName

当前控制器中的Create方法如下:

// GET: Referents/Create
        public ActionResult Create()
        {
            return View();
        }
    // POST: Referents/Create
    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Create([Bind(Include = "ReferentID,FirstName,LastName,Phone,Email,Password,ConfirmPassword")] Referents referents)
    {
        if (ModelState.IsValid)
        {
            db.Referents.Add(referents);          
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        return View(referents);
    }

很明显,现在我只填充Referents

如何同时用某些数据(用户名,姓氏,用户名)填充Users表?

UserRole列中,我想写字符串“ referent”。

编辑:添加了模型: 引用对象:

namespace StudentService.Models
{
    public class Referents
    {
        [Key]
        public int ReferentID { get; set; }

    [Required(ErrorMessage = "Морате унети име!")]
    public string FirstName { get; set; }

    [Required(ErrorMessage = "Презиме је обавезно!")]
    public string LastName { get; set; }

    [Required(ErrorMessage = "Корисничко име је обавезно!")]
    [Index(IsUnique = true)]
    public string UserName { get; set; }

    [Required(ErrorMessage = "Унесите исправан број телефона.")]
    [DataType(DataType.PhoneNumber)]
    public string Phone { get; set; }

    [Required(ErrorMessage = "Унесите исправну адресу електронске поште.")]
    [DataType(DataType.EmailAddress)]
    public string Email { get; set; }

    [Required(ErrorMessage = "Шифра је обавезна!")]
    [DataType(DataType.Password)]
    public string Password { get; set; }

    [Compare("Password", ErrorMessage = "Морате потврдити лозинку!")]
    [DataType(DataType.Password)]
    public string ConfirmPassword { get; set; }

    }
}

1 个答案:

答案 0 :(得分:1)

您需要为users创建项目并将其添加到您的数据库中。

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "ReferentID,FirstName,LastName,Phone,Email,Password,ConfirmPassword")] Referents referents)
{
    if (ModelState.IsValid)
    {
        // Create the user data for the current referent.
        Users currentUser = new Users(){
            FirstName = referents.FirstName,
            UserRole = "referent"
            // .... Finish initializing fields of your model.
        };

        db.Referents.Add(referents); 
        // Save the new user in your database.         
        db.Users.Add(currentUser);

        db.SaveChanges();
        return RedirectToAction("Index");
    }

    return View(referents);
}

在没有看到模型代码的情况下,很难具体说明,但是您应该可以将其用作示例。只需完成将currentUser对象初始化为所需的状态即可。根据您的架构,这可能无法正常工作。