Code First 数据注释--DatabaseGenerated

EF中可以使用DatabaseGenerated设置数据库字段的属性,它有三个枚举值:Computed、None、Identity

  • Computed 表示这一列是计算所得
  • None 不做处理
  • Identity 自增

对于int类型得到主键,默认是递增的,如果是Guid类型的主键则不然(默认值0000000000),当再次插入数据时就会报错。

 public class Student
     {
         [Key]
         public Guid Key { get; set; }

         //public Guid 
         public string Num { get; set; }
     }

可以使用以下方式解决

 public class Student
     {
         [Key,DatabaseGenerated( DatabaseGeneratedOption.Identity)]
         public Guid Key { get; set; }
         public string Num { get; set; }
     }

当主键时int型时,默认是会自动增长的,我们可以使用DatabaseGenerated.None操作取消自动增长这一特性

如果某一个列的值是计算所得的

  public class Student
     {
         [Key,DatabaseGenerated( DatabaseGeneratedOption.None)]
         public int Key { get; set; }

        [DatabaseGenerated(DatabaseGeneratedOption.Computed)]
         public string Num { get; set; }
     }

posted @ 2015-05-29 11:50  senki  阅读(1072)  评论(0编辑  收藏  举报