【发布时间】:2018-07-23 15:31:33
【问题描述】:
我想为 DB 编写约束。 IE。我的实体类有 2 个字段:
public int DriverCompensationTypeId { get; set; }
public decimal? CompensationRate { get; set; }
我想说明:
DriverCompensationTypeId的唯一允许值是0, 1, 2, 3如果
DriverCompensationTypeId == 0,CompensationRate始终应为null,在所有其他情况下不应为null。
这些约束怎么写?
【问题讨论】:
-
您可以在模型中定义枚举并将属性类型设置为枚举
-
@FelixCastor 但对于第二种情况?
-
这是更多的业务逻辑,不应由您的数据库处理。
-
@FelixCastor 我想在 db 中有正确的数据。拒绝另一个数据库操作员写入无效数据
-
@OlegSh 我同意FelixCastor的观点,现在的写法,应该在业务层处理。另一种方法是将其设为外键并指向您的选项为
0,1,2,3的另一个表,这将确保数据库中只有这些数字,因为插入其他任何内容都会导致异常
标签: c# database entity-framework ef-code-first constraints