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  阅读(1144)  评论(0)    收藏  举报