我有一个MVC web应用程序,其中模型中有一个表格我想要添加。我已经设置了主键以及其他数据字段,但每次尝试向表格添加内容时,都会出现以下错误:
“当IDENTITY_INSERT设置为OFF时,在表'TABLE_NAME'中插入显式值的标识列无法插入。”
我不确定为什么会出现这个问题,我已将主键设置为identity并在Visual Studio表格设计器中设置为自动递增。是否有任何方法可以在Visual Studio表格设计器中调整IDENTITY_INSERT参数?还是可能存在其他问题导致这种情况。
更新:@Brian - 据我所知,我没有明确设置值,以下是添加到表格的代码。
//Add viewer
public void addViewer(ModelStateDictionary modelState, Users user)
{
var userToAdd = new UserRoles();
userToAdd.Users = user;
if (String.IsNullOrEmpty(userToAdd.Users.Username))
{
modelState.AddModelError("noName", "Please enter a username for the new Viewer");
}
//See if Committee Member already exists
try
{
userToAdd = _db.UserRoles.First(ur => ur.Users.Username == userToAdd.Users.Username);
modelState.AddModelError("userExists", "A Viewer with that username already exists in the system");
return;
}
catch (Exception e)
{
if (modelState.IsValid)
{
//Assign Committee Member role
userToAdd.Role = "Viewer";
userToAdd.Users = user;
//Add new Committee Member to User Roles and associated username to Users
_db.AddToUserRoles(userToAdd);
_db.SaveChanges();
}
}
}
*.edmx
文件,将与我的主键对应的值从<Property Name="Id" Type="int" Nullable="false" />
改成了<Property Name="Id" Type="int" Nullable="false" StoreGeneratedPattern="Identity" />
。只需添加带有其值的属性StoreGeneratedPattern="Identity"
即可。 - Rubens Mariuzzo