我对MVC和SQL CE比较陌生,我的主键字段似乎有问题。在我的数据库中,我有'User'表,该表有一个名为'UserId'的主键。我创建了一个注册页面,它从中获取了一些数据,然后应该将这些数据存储在数据库中。但是,单击表单提交按钮时,会检测到以下错误:
The column cannot be modified. [ Column name = UserId ]
这很奇怪,因为我没有尝试UserId值。以下代码是我对注册操作的帖子操作:
[HttpPost]
public ActionResult Registration(UserModel user)
{
if (ModelState.IsValid)
{
using (var db = new BlogDbContext())
{
var crypto = new SimpleCrypto.PBKDF2();
var encryptPassword = crypto.Compute(user.Password);
var newUser = db.Users.Create();
newUser.Username = user.Username;
newUser.FirstName = user.FirstName;
newUser.LastName = user.LastName;
newUser.Email = user.Email;
newUser.Password = encryptPassword;
newUser.PasswordSalt = crypto.Salt;
newUser.JoinDate = DateTime.Now;
db.Users.Add(newUser);
db.SaveChanges();
return RedirectToAction("Index", "User");
}
}
else
{
ModelState.AddModelError("", "Registration Failure");
}
return View();
}
当我最初在VS 2012中使用SQL CE创建数据库时,我将identity选项设置为'true',认为这会自动增加主键列。我已经在SO上查找了类似的问题,但是,大多数人都认为包含某种SQL查询,我还没有深入研究过。任何帮助将不胜感激。