【问题标题】:Entity Framework Core Auto Increment not working correctly实体框架核心自动增量无法正常工作
【发布时间】:2019-06-06 09:48:51
【问题描述】:

尝试使用我的 ASP.NET MVC API 插入数据时,Entity Framework 自动生成的 id 似乎越界,导致插入 SQL Server 时出现问题。该对象具有需要传入的所有数据和数据库,并且已经使用迁移创建。我不确定是什么导致了这个错误。提前感谢您的帮助

生成的id示例:

这就是我将数据插入数据库的方式

_context.Triggers.Add(trigger);
_context.SaveChanges();

模型类:

 [Key]
 public int Id { get; set; }
 [Required]
 public int TriggerType { get; set; } //1 overload, 2 power off
 [Required]
 public string UserId { get; set; }
 [Required]
 public string Name { get; set; }

【问题讨论】:

  • 这是什么:_context.Triggers.Add(trigger);?
  • @LeonardoSeccia 这是应用程序 DbContext
  • 我的意思是trigger...
  • 与“触发器”模型关联的数据库集
  • 您能告诉我们您是如何创建它的吗...? IE。 new Trigger() { bla bla bla } - bla bla bla bit

标签: c# entity-framework model-view-controller


【解决方案1】:

试试这个:

[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }

【讨论】:

    【解决方案2】:

    如果你有这样的事情,

    private int _id = -1;
    public int Id {get => _name; set => _name = value};
    

    只需将其删除并尝试一下,

    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }
    

    这解决了我的问题

    【讨论】:

    • 更详细地解释为什么这会有所帮助。
    猜你喜欢
    • 2020-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-09
    • 1970-01-01
    • 2011-03-12
    • 1970-01-01
    相关资源
    最近更新 更多