2

我目前正在使用 ASP.NET MVC4 并尝试将新条目添加到具有Integeras 主键的表中。我知道身份问题并将其设置为 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 ]

4

3 回答 3

1

您可以像这样在键上尝试 [DatabaseGenerated(DatabaseGeneratedOption.Identity)] :

[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int SheetId { get; set; }
于 2013-07-28T15:55:33.283 回答
1

我已经解决了这个问题,只删除了我的 .EDMX 上下文文件并再次重新创建它,瞧它工作了!!也感谢你们的努力

于 2013-08-02T23:45:16.003 回答
0

删除键上的[必需];

[Key]
public int SheetId { get; set; }
于 2013-07-28T08:36:16.697 回答