entity-framework - 在 EntityFramework 2.1 Fluent API 在插入时设置审计字段
问题描述
使用 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()");
我将不胜感激任何建议。谢谢。
解决方案
这可以使用.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 ***')");
}
这是您可以参考的链接:
希望这可以帮助,
香港
推荐阅读
- python - 使用 python 代码从窗口资源管理器打开图像文件
- javascript - 从 js 隐藏 POS RewardButton。奥多 14
- python - 如何用python中前一周(天)的同一天和同一时间的值来估算时间序列数据中的缺失值
- jquery - 来自颜色数组的随机框阴影
- javascript - JQuery 动态菜单使用嵌套 JSON 对象前 2 级手风琴,3 和 4 悬停弹出
- python - 如何用numpy保存张量?
- node.js - npm 指向不同的 registry.npm 错误!网络 getaddrinfo ENOTFOUND
- python - DjangoRestFramework 非 orm 序列化器和源
- asp.net-core - 在内部使用 Noda Time Instant 时,我应该在 DTO 中使用什么数据类型?
- python - TypeError: 'value' 必须是 str 或 bytes 的实例,而不是浮点数