主键在 C# 中不自动递增 Entity Framework
Primary Key Does not autoincrement Entity Framework in C#
我有三个小模型 classes,虽然其中两个确实有效,但一个无效,我不明白为什么。我找到了几种解决方案,但它们都没有帮助我。首先,项目中使用了code first的方法。
所以,主要问题是Coupon
class中的PK没有设置为自增值。我参考了服务器资源管理器中的表格并查看了 PK 的属性。意识到其他两个 classes PK 的属性设置为 Is Identity
到 True
和 Identity Increment = 1
而在 Coupon
的 PK 中 属性 它们是设置为 Is Identity
到 False
和 Identity Increment
到 0.
我认为问题出在某处,您可以在下面找到我遇到问题的小模型。
public class Coupon
{
public Coupon()
{
footballMatches = new List<FootballMatch>();
}
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int CouponId { get; set; }
public int UserId { get; set; }
public virtual List<FootballMatch> footballMatches { get; set; }
}
如果您需要更多信息,请询问我。
谢谢!
没想到,但我以如此愚蠢的方式找到了解决方案。我的问题的解决方案只是重新添加密钥。一开始我不同意marc_s因为我之前也试过重新加。显然,我第一次尝试重新添加时做错了。
我做错的是将 int
转换为 string
然后转换回 int
而我没有触及实例名称,即 CouponId。 没有起作用。然而,遗憾的是,我还必须更改实例的名称才能使其正常工作。我将行 public int CouponId
更改为 public string CouponName
然后转换回实际名称。现在它显示了预期的行为。
简而言之,简单的解决方案是更改变量和名称的键,然后将它们重新更改为它们的实际名称。就这么简单。
顺便说一下,在执行这些操作时请不要忘记在每个步骤之间更新您的迁移。所以工作流程就像 Change->Update->Change Back->Update.
希望能对遇到同样问题的其他人有所帮助。
我有三个小模型 classes,虽然其中两个确实有效,但一个无效,我不明白为什么。我找到了几种解决方案,但它们都没有帮助我。首先,项目中使用了code first的方法。
所以,主要问题是Coupon
class中的PK没有设置为自增值。我参考了服务器资源管理器中的表格并查看了 PK 的属性。意识到其他两个 classes PK 的属性设置为 Is Identity
到 True
和 Identity Increment = 1
而在 Coupon
的 PK 中 属性 它们是设置为 Is Identity
到 False
和 Identity Increment
到 0.
我认为问题出在某处,您可以在下面找到我遇到问题的小模型。
public class Coupon
{
public Coupon()
{
footballMatches = new List<FootballMatch>();
}
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int CouponId { get; set; }
public int UserId { get; set; }
public virtual List<FootballMatch> footballMatches { get; set; }
}
如果您需要更多信息,请询问我。
谢谢!
没想到,但我以如此愚蠢的方式找到了解决方案。我的问题的解决方案只是重新添加密钥。一开始我不同意marc_s因为我之前也试过重新加。显然,我第一次尝试重新添加时做错了。
我做错的是将 int
转换为 string
然后转换回 int
而我没有触及实例名称,即 CouponId。 没有起作用。然而,遗憾的是,我还必须更改实例的名称才能使其正常工作。我将行 public int CouponId
更改为 public string CouponName
然后转换回实际名称。现在它显示了预期的行为。
简而言之,简单的解决方案是更改变量和名称的键,然后将它们重新更改为它们的实际名称。就这么简单。
顺便说一下,在执行这些操作时请不要忘记在每个步骤之间更新您的迁移。所以工作流程就像 Change->Update->Change Back->Update.
希望能对遇到同样问题的其他人有所帮助。