我只需要为正数(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中的'unsigned'之类的东西。 谢谢。
答案 0 :(得分:6)
实体框架流畅的配置目前不支持最小值或最大值设置,只是长度。
但是,你可以通过注释实现这样的验证:
[Range(1, int.MaxValue, ...)]
int YourInt{ get; set; }
但这只会在保存期间进行验证,而不是像使用流畅的配置/迁移那样将实际约束添加到数据库中。
<强> PS 强>
我喜欢Entity Framework迁移,但我只在开发期间使用它直到第一个版本。在您实际运送产品之前,它可以节省大量时间。在那之后,我通常会自己微调数据库,包括索引和约束,并完全放弃使用EF迁移。
数据库应该在生产中进行临床调整,因为它们通常是性能和优化中最重要的(如果不是最重要的)重要因素。不幸的是,EF迁移并不能为您提供所需的所有灵活性,即使它涵盖了最重要的用例。
答案 1 :(得分:1)
可能使用Range Dataannotation:
[Range(0.0, Double.MaxValue)]
只有超过0的值才是您要找的,不是吗?