在 EntityFramework 2.1 Fluent API 中设置插入时的审核字段
In EntityFramework 2.1 Fluent API Setting Audit Fields on Insert
使用 Entity Framework 的 Fluent API,我可以使用以下代码在用户 table 中成功插入新行:
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()");
如果有任何建议,我将不胜感激。谢谢
这可以使用 .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 ***')");
}
这里是link你可以参考:
希望这对您有所帮助,
香港
使用 Entity Framework 的 Fluent API,我可以使用以下代码在用户 table 中成功插入新行:
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()");
如果有任何建议,我将不胜感激。谢谢
这可以使用 .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 ***')");
}
这里是link你可以参考:
希望这对您有所帮助,
香港