我只需要为正数(0-...)添加约束,并将数字限制为(...-1)。
CreateTable(
"dbo.Drinks",
c => new
{
Id = c.Int(nullable: false, identity: true),
Name = c.String(),
ImageUrl = c.String(),
Price = c.Int(nullable: false),
Count = c.Int(nullable: false)
})
.PrimaryKey(t => t.Id);
//.Constraint ???
类似于 MS SQL 中的“未签名”。 谢谢你。
实体框架流畅配置当前不支持最小值或最大值设置,仅支持长度。
不过,您可以通过注释实现这样的验证:
[Range(1, int.MaxValue, ...)]
int YourInt{ get; set; }
但这只会在保存期间进行验证,而不是像流畅的配置/迁移那样将实际约束添加到数据库中。
PS
我喜欢实体框架迁移,但我只在开发过程中使用它,直到第一个版本。在您实际发货之前,这可以节省大量时间。之后,我通常会自己微调数据库,包括索引和约束,并完全放弃使用 EF 迁移。
数据库应该在生产中进行临床调整,因为它们通常是性能和优化中最(如果不是最)重要的因素之一。不幸的是,EF 迁移并没有为您提供所需的所有灵活性,即使它涵盖了最重要的用例。
也许带有范围数据注释:
[Range(0.0, Double.MaxValue)]
只有大于 0 的值才是您要寻找的,不是吗?