微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

EF Core Data 注释必须大于其他字段

如何解决EF Core Data 注释必须大于其他字段

这是生成表格的模型类。

 public class Mission
{
    [Key]
    public string Id { get; set; }
    [Range(minimum: 1,maximum: int.MaxValue)]
    public int MinDayRate { get; set; }
    [Range(minimum: 1,maximum: int.MaxValue)]
    public int MaxDayRate { get; set; }
}

sql Server 中,它是: 更改表任务添加约束 CK_MaxDayRate_vs_MinDayRate 检查 (MinDayRate

如何创建数据注释 MaxDayRate 必须大于 MinDayRate,这将创建我的 sql server 示例中的约束?

解决方法

有一个数据注释[Compare]。但是,[Compare] 检查两个属性是否相等,而不是一个大于另一个。确实存在应用各种 .NET 验证属性作为数据库检查约束的 EFCore.CheckConstraints

更好的方法是在 OnModelCreating 中使用确切的 SQL 定义任何检查约束:

modelBuilder.Entity<MyModel>()
    .HasCheckConstraint("CK_Properties_MinDayRate_MaxDayRate","[MaxDayRate] > [MinDayRate]");

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。