我需要首先在EF代码中设置sql server列“默认值或绑定”OnModelCreating(或作为属性属性)。原因是我想使用sql 2012序列而不是自动生成的身份。
要在sql 2012中使用序列,我需要实现这个:
如何通过实体框架4.3代码优先完成?
答案 0 :(得分:2)
我认为实体框架CodeFirst尚不支持,因此只能借助XML映射(EDMX)设置默认值。
据我所知,FluentAPI可让您使用DatabaseGeneratedOption
http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.databasegeneratedoption(v=vs.103).aspx
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<YourEntity>().Property(p => p.YourColumn)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity) //None,Identity,Computed
}
答案 1 :(得分:0)
我知道这是一个老问题,但可能会帮助在EF 6中寻找此答案的人。 您可以使用迁移来完成此任务:
public override void Up()
{
AlterColumn("dbo.table_name", "FieldName", c => c.Guid(defaultValueSql: "YOU_SQL_FUNCTION_HERE", nullable: false));
}