【问题标题】:How to use a serial field with Postgresql with Entity Framework Code First如何使用带有实体框架代码的 Postgresql 的串行字段
【发布时间】:2014-03-06 00:04:03
【问题描述】:

我有一个序列字段(称为 displayID),它不是 postgresql 数据库中表的键,我首先使用实体​​框架代码。当我通过上下文将新对象添加到数据库中时,我保存了该对象,但它以 0 而不是下一个整数的值插入到数据库中。我无法让它自动增加数据库中的值。我正在使用 devArt postgres 实体框架驱动程序。我有什么特别的事情要做吗?

【问题讨论】:

    标签: c# entity-framework postgresql ef-code-first


    【解决方案1】:

    尝试将身份数据注释添加到您的 displayID 属性。不知道 DevArt 的东西是否支持它,但它应该可以工作。

    public class Foo
    {
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int displayID { get; set; }
    
        [Key]
        public int myKey { get; set; }
    
    }
    

    【讨论】:

      【解决方案2】:

      2020年更新只需要在IEntityTypeConfiguration中设置UseIdentityAlwaysColumn就够了

      builder.Property(x => x.displayID).UseIdentityAlwaysColumn();
      

      【讨论】:

      • 刚刚看到还有一个扩展方法builder.UseSerialColumn()。只是对未来浏览器的说明(信息与 Core 3.1 / EF 3.1 有关)。
      • 它认为只能从 .net 5 获得
      猜你喜欢
      • 2012-09-24
      • 2017-09-01
      • 2013-10-13
      • 1970-01-01
      • 1970-01-01
      • 2012-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多