C# 自动增量问题:无法修改该列。[列名=用户ID]
我目前正在使用ASP.NET MVC4,并尝试将一个新条目添加到一个表中,该表的主键为C# 自动增量问题:无法修改该列。[列名=用户ID],c#,sql,asp.net-mvc-4,sql-server-ce,auto-increment,C#,Sql,Asp.net Mvc 4,Sql Server Ce,Auto Increment,我目前正在使用ASP.NET MVC4,并尝试将一个新条目添加到一个表中,该表的主键为Integer。我知道标识问题并将其设置为true,我也知道guid,但它们用于唯一标识符,而不是整数 在这里,我添加了一个新行,知道我的主键是一个名为SheetId if (ModelState.IsValid) { var sheet = db.Sheets.Create(); sheet.Email = Request.Cookies["UserInfo"]["Email"]; shee
Integer
。我知道标识问题并将其设置为true,我也知道guid,但它们用于唯一标识符,而不是整数
在这里,我添加了一个新行,知道我的主键是一个名为SheetId
if (ModelState.IsValid)
{
var sheet = db.Sheets.Create();
sheet.Email = Request.Cookies["UserInfo"]["Email"];
sheet.ApprovedDays = "0000000";
sheet.DateStarted = DateTime.Now;
db.Sheets.Add(sheet);
db.SaveChanges();
return RedirectToAction("Index", "Home");
}
这是图纸模型
public class Sheet
{
[Key]
[Required]
public int SheetId { get; set; }
[Required]
public DateTime StartDate { get; set; }
[Required]
public string Email { get; set; }
public string ApprovedDays { get; set; }
//
public virtual UserModel UserModel { get; set; }
public virtual ICollection<Task> Task { get; set; }
}
公共课程表
{
[关键]
[必需]
公共int SheetId{get;set;}
[必需]
公共日期时间起始日期{get;set;}
[必需]
公共字符串电子邮件{get;set;}
公共字符串ApprovedDays{get;set;}
//
公共虚拟用户模型用户模型{get;set;}
公共虚拟ICollection任务{get;set;}
}
这是我得到的例外
异常详细信息:System.Data.SqlServerCe.SqlCeException:无法修改该列。[列名=表单ID]
取下钥匙上的[必需]
[Key]
public int SheetId { get; set; }
您可以在如下键上尝试[DatabaseGenerated(DatabaseGeneratedOption.Identity)]:
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int SheetId { get; set; }
我已经解决了这个问题,只删除了我的.EDMX上下文文件并重新创建了它,瞧,它成功了!!
还感谢大家的努力,伙计们,SheetId列的
工作表
模型是什么样子的?可能db.Sheets.Create()会给SheetId赋值,但数据库例外为空,因此可以自动生成。@Joachim Isakson:我已经添加了工作表Model@juhan_h:在db.Sheets.Create()之后SheetId的值为0。仍然存在相同的异常exists@Osama哪个SQL CE版本?