在EntityFramework 2.1中,在插入时设置Fluent API设置审核字段

时间:2018-10-18 03:06:12

标签: entity-framework fluent-interface

使用Entity Framework的Fluent API,我可以使用以下代码在用户表中成功插入新行:

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

但是,我也想基于分配给UserId的Guid设置CreatedBy字段。以下代码不起作用:

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

任何建议,我将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

这可以使用.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 Method

希望这会有所帮助,

HK