У меня в базе данных две таблицы: 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 я хочу написать строку «референт».
РЕДАКТИРОВАТЬ Добавлена модель: Референты:
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; }
}
}


Вам необходимо создать элемент для 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 таким, каким он должен быть. Возможно, это не сработает в зависимости от вашей схемы.
Я только что добавил свою модель.
Хорошо - вы сможете использовать приведенный выше пример кода и настроить его.
Является ли поле UserName уникальным ключом? Связаны ли эти две таблицы (референты и пользователи) в базе данных с помощью внешнего ключа?