【发布时间】:2013-07-28 04:49:21
【问题描述】:
我目前正在使用 ASP.NET MVC4 并尝试将新条目添加到以 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; }
}
这是我得到的例外
异常详细信息:System.Data.SqlServerCe.SqlCeException:无法修改列。 [ 列名 = SheetId ]
【问题讨论】:
-
Sheet模型对于SheetId列的外观如何? -
可能 db.Sheets.Create() 会为 SheetId 分配一个值,但数据库除了为空,因此可以自动生成。
-
@Joachim Isaksson:我添加了工作表模型
-
@juhan_h : 在 db.Sheets.Create() 之后 SheetId 的值为 0
标签: c# sql asp.net-mvc-4 sql-server-ce auto-increment