Enity Framework - Изменить значение по умолчанию - PullRequest
0 голосов
/ 12 июня 2018

У меня есть таблица SQL Server со значениями по умолчанию на многих столбцах.Примером является ModifiedDtm (время последнего изменения строки), которое будет иметь GETDATE() в качестве значения по умолчанию.Чтобы избежать столкновения с этим, я реализовал его следующим образом в Entity Framework 6.2, используя подход, основанный на коде:

[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public DateTime ModifiedDtm { get; set; }

Это заставляет значение по умолчанию работать так, как задумано, при создании строки.Однако, это мешает мне когда-либо снова обновлять колонку.

Как мне сделать так, чтобы можно было использовать значения по умолчанию SQL, но все же разрешить изменять значение с помощью EF позже?

1 Ответ

0 голосов
/ 12 июня 2018

Вы должны рассмотреть возможность использования свободно API для этого.В вашем классе контекста добавьте небольшой бит для установки значения по умолчанию, как показано ниже, используя HasDefaultValueSQL

class MyContext : DbContext
{
    public DbSet<YourEntity> YourEntities{ get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<YourEntity>()
            .Property(b => b.Created)
            .HasDefaultValueSql("getdate()");
    }
}
...