Entity Framework Code First 添加正数约束

7

我需要添加约束条件,仅限正数(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'。

谢谢。
2个回答

11

Entity Framework 流畅配置目前不支持最小值或最大值设置,只支持长度。

不过,你可以通过注解实现验证,例如:

[Range(1, int.MaxValue, ...)]
int YourInt{ get; set; }
但是这只会在保存期间进行验证,而不像使用流畅的配置/迁移一样将实际约束添加到数据库中。
PS
我喜欢Entity Framework迁移,但只在开发期间使用,直到第一个版本发布。在您实际发布产品之前,它可以节省大量时间。之后,我通常会自己微调数据库,包括索引和约束,并完全放弃使用EF迁移。
生产环境中应该对数据库进行临床调整,因为它们通常是性能和优化的最重要因素(如果不是最重要的因素)。不幸的是,即使覆盖了最重要的用例,EF迁移也无法提供您所需的所有灵活性。

1
也许可以使用范围数据注释:
[Range(0.0, Double.MaxValue)]

你要找的是大于0的值,是吗?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接