Настройка «Значение по умолчанию или привязка» Entity Framework Code First - PullRequest
2 голосов
/ 04 марта 2012

Мне нужно сначала установить в столбце EF «значение по умолчанию или привязку» OnModelCreating (или как атрибут свойства) в коде EF. Причина в том, что я хочу использовать последовательность SQL 2012 вместо автоматически сгенерированного удостоверения.

Чтобы использовать последовательность в SQL 2012, мне нужно добиться этого:

SQL 2012 sequence

Как это можно сделать с помощью структуры кода 4.3 вначале?

Ответы [ 2 ]

2 голосов
/ 04 марта 2012

Я думаю, что это еще не поддерживается для структуры сущностей CodeFirst, поэтому значение по умолчанию можно установить только с помощью сопоставления XML (EDMX).

Вы можете проголосовать здесь за новые функции: http://data.uservoice.com/forums/72025-ado-net-entity-framework-ef-feature-suggestions/suggestions/2541076-allow-using-sql-server-2012-sequence-for-generatin

Насколько я знаю, 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

}
0 голосов
/ 27 февраля 2019

Я знаю, что это старый вопрос, но он может помочь кому-то найти этот ответ в EF 6. Это можно сделать с помощью миграций:

public override void Up()
{
    AlterColumn("dbo.table_name", "FieldName", c => c.Guid(defaultValueSql: "YOU_SQL_FUNCTION_HERE", nullable: false));
}
...