Как заполнить две таблицы в методе создания [asp.net mvc] - PullRequest
0 голосов
/ 12 октября 2018

У меня есть две таблицы в моей базе данных: referents и users.

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 определенными данными (UserName, LastName, UserName) вв то же время?

В столбце UserRole я хочу написать строку "referent".

EDIT Добавлена ​​модель: Ссылки:

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 голосов
/ 12 октября 2018

Вам нужно создать элемент для 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, который вам нужен.Возможно, это не сработает в зависимости от вашей схемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...