【发布时间】:2016-03-14 11:45:24
【问题描述】:
我正在尝试将一个新的 AspNetUsers 对象作为管理员帐户添加到我的项目中。 在我的 Global.asax 中,我调用了一个静态方法来生成该用户。我就是这样做的:
if (!db_entities.AspNetUsers.Any(u => u.Email.Equals("text")))
{
PasswordHasher hasher = new PasswordHasher();
string adminPassword = "test";
AspNetUsers adminAccount = new AspNetUsers
{
Email = "text",
UserName = "text",
PasswordHash = hasher.HashPassword(adminPassword),
SecurityStamp = Guid.NewGuid().ToString()
};
db_entities.AspNetUsers.Add(adminAccount);
db_entities.SaveChanges();
}
调用此方法时,会出现DbEntityValidationException,并在内部异常中告诉我需要 Id 字段。
实际上,我使用“相同”代码在项目的其他部分创建对象,并且 Id 始终由系统提供。我找到了一个帖子,首先打电话给SaveChanges(),但它不起作用,因为 Id 总是丢失。
【问题讨论】:
-
您是否将数据库中
AspNetUsers表的自动增量设置为ON -
啊,由于它是自动生成的,我没有检查。它没有设置为自动增量,因为它不是一个身份。但它是一个包含许多字符的 nvarchar-Id。有没有办法自己增加它,还是我需要编写一个工具来解析它?
标签: c# sql-server asp.net-mvc entity-framework