1

我对 MVC 和 SQL CE 比较陌生,而且我的主键字段似乎有问题。在我的数据库中,我有“用户”表,该表有一个名为“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 创建数据库时,我将标识选项设置为“真”,相信这会自动增加主键列。我已经在 SO 上寻找过类似的问题,但是,大多数人认为包括某种 SQL 查询,我还没有深入研究过。任何帮助将不胜感激。

4

0 回答 0