sql-server - SQL Server - EF Core - 自定义约束,其中针对 id 的所有标志都必须为假,除了一个
问题描述
我有一个首先通过 ef 核心代码生成的表,并且需要分配一个约束,其中具有特定主键 id 的记录中的所有标志都必须为假,除了一个必须为真的标志,因此它将始终有一条记录标志设置为真。
例如在下图中,我希望只有一个项目的 isAccountHolder 为 true,如果表中只有一条记录,则必须将 isAccountHolder 设置为 true。
我想知道这是否可以使用代码优先方法来完成。我尝试了以下方法,但似乎不起作用。
builder
.HasIndex(p => new {p.AccountHolderCustomerId, p.IsAccountHolder})
.HasFilter("[IsAccountHolder] = 1");
解决方案
我在这里找到了答案: 如何阻止 EF Core 在可为空的列上创建过滤索引
builder
.HasIndex(p => new {p.AccountHolderCustomerId, p.IsAccountHolder})
.IsUnique()
.HasFilter("[IsAccountHolder] = 1");
推荐阅读
- sql - 需要找到两个日期之间的差异以及时间戳,但我需要在 postgresql 中排除星期六和星期日
- jenkins - 詹金斯声明性管道:如何在名称中有空格时访问参数的值?
- c# - 计算指数延迟的估计时间
- apache-kafka - 即使 linger.ms 为 0,Kafka 超时异常
- mysql - 在where子句中使用时在mysql中成功添加序列号但未知列
- amazon-web-services - AWS,我应该将内存限制设置多高?
- python - Bootstrap Modal 不适用于 jinja 2 中的“for”
- reactjs - OnClick 反应按钮以显示表格
- javascript - 未捕获的类型错误:无法读取未定义 React 的属性“过滤器”
- angular - 如何在Angular中注入具有构造函数参数的对象?