В EntityFramework 2.1 Свободный API Настройка полей аудита при вставке - PullRequest
0 голосов
/ 18 октября 2018

Используя Fluent API Entity Framework, я могу успешно вставить новую строку в таблицу пользователя, используя этот код:

 modelBuilder.Entity<User>().ToTable("Users");
 modelBuilder.Entity<User>().HasKey(x => x.UserId);

Однако я также хочу установить поле CreatedBy на основе Guid, назначенного дляИдентификатор пользователя.Следующий код не работает:

 modelBuilder.Entity<User>().Property(x => x.CreatedBy)
      .HasDefaultValueSql("SCOPE_IDENTITY()");

Буду признателен за любые предложения.Спасибо.

1 Ответ

0 голосов
/ 18 октября 2018

Это можно сделать, используя .HasComputedColumnSql.

Пример:

modelBuilder.Entity<Contact>()
            .Propery(p => p.LastModified)
            .HasComputedColumnSql("GetUtcDate()");


protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<SalesOrderHeader>()
    .Property(e => e.SalesOrderNumber)
    .HasComputedColumnSql("isnull(N'SO'+CONVERT([nvarchar](23),[SalesOrderID]),N'*** ERROR ***')");
}

Вот ссылка, на которую вы можете сослаться:

HasComputedColumnSql Метод

надеюсь, это поможет,

HK

...