这是我点击表单上的提交以添加新用户时出现的错误。我试图通过用户表上的查询将IDENTITY设置为ON,但它没有帮助。当我不自己插入数据时,我不知道如何设置它。有什么建议?
这是我的控制器:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Register(User U)
{
if (ModelState.IsValid)
{
using (SomeEntities dc = new SomeEntities ())
{
//you should check duplicate registration here
dc.Users.Add(U);
dc.SaveChanges();
ModelState.Clear();
U = null;
ViewBag.Message = "Successfully Registration Done";
}
}
return View(U);
}
这是我的用户模型:
public partial class User
{
public User()
{
this.Posts = new HashSet<Post>();
this.PostFeedbacks = new HashSet<PostFeedback>();
this.ProjectUsers = new HashSet<ProjectUser>();
this.UserWithdraws = new HashSet<UserWithdraw>();
}
public decimal user_id { get; set; }
[Required(ErrorMessage = "Please provide username", AllowEmptyStrings = false)]
public string user_name { get; set; }
[Required(ErrorMessage="Please provide Password", AllowEmptyStrings=false)]
[DataType(System.ComponentModel.DataAnnotations.DataType.Password)]
[StringLength(50, MinimumLength = 8, ErrorMessage = "Password must be 8 char long.")]
public string user_pass { get; set; }
[Compare("user_pass", ErrorMessage = "Confirm password dose not match.")]
[DataType(System.ComponentModel.DataAnnotations.DataType.Password)]
public string confirm_user_pass { get; set; }
[Required(ErrorMessage = "Please provide full name", AllowEmptyStrings = false)]
public string full_name { get; set; }
答案 0 :(得分:2)
您是否需要明确设置标识,或者您是否可以让db在插入时设置标识?如果是后者,只需将IDENTITY_INSERT设置为OFF并确保将标识列设置为其默认值。
此外,请确保标记您的标识列。离。
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID {get; protected set;}
答案 1 :(得分:0)
我在使用LINQ之前已经有了这个,因为我没有在表格设计中将主键标识设置为“Is Identity”。