【发布时间】:2016-05-25 22:11:01
【问题描述】:
在POST 期间在我的控制器中,我如何更新我的USERS 实体,然后使用新创建的UserID 在我的USERROLES 表中为它们分配一个角色。以下是我目前的代码,尝试保存第二组更改时出错。
我的USERROLES 表由UserID 和RoleID 的组合组成。 USERS 中的UserID 是在插入表格时自动生成的。
如果有人能告诉我如何实际解决这个问题,那就太棒了 - 我对 ASP MVC 还是很陌生。
using (var db = new SwinTCSEntities()) // initialise db object
{
// add values to USERS
db.USERS.Add(new USERS
{
FirstName = model.FirstName,
LastName = model.LastName,
Username = model.Username,
Password = Crypto.HashPassword("pass1234"),
Email = model.Email,
OfficeNo = model.OfficeNo,
PhoneNo = model.PhoneNo,
RegistrationDateTime = DateTime.Now,
MeetingNotifications = true,
SubmissionNotifications = true,
TeamAssignNotifications = true,
OverdueNotifications = true
});
db.SaveChanges(); // this goes through fine
if (db.USERS.Any(x => x.Username == model.Username)) // it's able to get the new user value
{
if (model.IsAdmin && !model.IsStudent)
{
db.USERROLES.Add(new USERROLES
{
UserID = db.USERS.First(x => x.Username == model.Username).UserID,
RoleID = db.ROLES.First(x => x.Name == "Admin").RoleID,
DateAdded = DateTime.Now
});
// It errors here with a concurrency error
db.SaveChanges();
}
}
}
【问题讨论】:
标签: asp.net sql-server asp.net-mvc post controller