实体框架代码首先为正数添加约束

ova*_*nko 6 .net c# entity-framework code-first ef-migrations

我只需要为正数(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 ???
Run Code Online (Sandbox Code Playgroud)

像MS SQL中的'unsigned'之类的东西.谢谢.

And*_*ena 7

实体框架流畅配置目前不支持最小值或最大值设置,只是长度.

但是,您可以通过注释实现这样的验证:

[Range(1, int.MaxValue, ...)]
int YourInt{ get; set; }
Run Code Online (Sandbox Code Playgroud)

但这只会在保存期间进行验证,而不是像使用流畅的配置/迁移那样将实际约束添加到数据库中.

PS

我喜欢Entity Framework迁移,但我只在开发期间使用它直到第一个版本.在您实际运送产品之前,这是一个巨大的节省时间.在那之后,我通常会自己微调数据库,包括索引和约束,并完全放弃使用EF迁移.

数据库应在生产中进行临床调整,因为它们通常是性能和优化中最重要的(如果不是最重要的)因素.不幸的是,EF迁移并不能为您提供所需的所有灵活性,即使它涵盖了最重要的用例.