Entity Framework中的DatabaseGenerated

    在数据库中建表的时候,配置列属性DatabaseGenerated的值为DatabaseGeneratedOption.None。为了弄清楚这个属性的含义,查阅了相关资料。

 [Table("Entities")]
  public class PgEntity
  {
      [Key,DatabaseGenerated(DatabaseGeneratedOption.None)]
      [Column("EntityLabel")]
      public int Label { get; set; }

      [Column("TypeId")]
      public int Id { get; set; }
  }
    DatabaseGeneratedOption是一个枚举类型,它的定义如下:
public enum DatabaseGeneratedOption
{
    None = 0,
    Identity = 1,     
    Computed = 2     
}

  • None表示不处理
  • Identity表示自增长
  • Computed表示计算所得。

None表示数据库直接存储读入的值,不做额外处理。

在Entity Framework中,如果主键是int类型,生成数据库的时候会自动设置该列为自增长。如果主键是Guid类型,我们就要手动设置列的属性为自增长。

如果对属性标识为Computed,Entity Framework会认为该列是通过其它列计算得出的,不会将其持久化到数据库中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值