该列无法修改。 [列名= UserId]

时间:2013-04-24 11:42:01

标签: c#-4.0 asp.net-mvc-4 sql-server-ce

我对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查询,我还没有深入研究过。任何帮助将不胜感激。

0 个答案:

没有答案