.net - EF Core 中的自动计算字段
问题描述
使用 Ef5,我有以下课程要坚持
class Bar {
decimal A { get; set; }
decimal B { get; set; }
decimal Max { get { return Math.Max(A, B); } }
decimal? InvA { get { return A == 0 ? null : 1 / A; } } // this is 1/A
}
我应该如何使用 EF Core 进行管理?我试着做
class Bar {
decimal A { get; set; }
decimal B { get; set; }
decimal Max { get; private set; }
decimal? InvA { get; private set; }
}
在我做的配置中
builder.Property(p => p.Max).ValueGeneratedOnAddOrUpdate();
builder.Property(p => p.InvA).ValueGeneratedOnAddOrUpdate();
是否足够和正确?
解决方案
您可以使用 DatabaseGenerated 属性注释相应的属性:
public class Bar
{
public decimal A { get; set; }
public decimal B { get; set; }
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public decimal Max { get { return Math.Max(A, B); } }
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public decimal? InvA { get { return A == 0 ? null : 1 / A; } }
}
有关详细信息,请参阅文档。
推荐阅读
- typescript - Angular9中代码的执行顺序应该是什么?
- dll - 在 Windows 10 上运行简单的汇编程序时出现问题
- pandas - 将多列分解成行,维护单个列表元素顺序熊猫
- javascript - lerna 独立版本控制 + Github Actions 的问题
- excel - Excel:带有通配符的 SUMPRODUCT 与确切的单元格内容不匹配
- html - 用于移动设备的 jQuery 滚动事件
- amazon-web-services - 创建 amazon s3 存储桶时,是否可以设置自动写入存储桶的策略?
- reactjs - 使用 react polyfills 但出现错误 Object does not support property or method 'repeat' in IE11
- python - Python numpy:具有可变精度的 floor 和 ceil 十进制值(用于多个批处理图的颜色条)
- html - 空间不足时如何将组 div 移动到新行?