Entity Framework 代码首先为正数添加约束
Entity Framework code first add constraint for positive numbers
我只需要为正数 (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'。
谢谢。
可能带有范围数据注释:
[Range(0.0, Double.MaxValue)]
只有大于 0 的值才是您要查找的值,不是吗?
Entity Framework Fluent 配置当前不支持最小值或最大值设置,仅支持长度。
不过,您可以通过注释实现这样的验证:
[Range(1, int.MaxValue, ...)]
int YourInt{ get; set; }
但这只会在保存期间进行验证,而不会像流畅配置/迁移那样将实际约束添加到数据库中。
PS
我喜欢 Entity Framework 迁移,但我只在开发过程中使用它直到第一次发布。在您实际运送产品之前,这可以节省大量时间。之后,我通常会自己微调数据库,包括索引和约束,并完全放弃使用 EF 迁移。
数据库应该在生产中进行临床调整,因为它们通常是性能和优化中最(如果不是最)重要的因素之一。不幸的是,EF 迁移并没有为您提供所需的全部灵活性,即使它涵盖了最重要的用例。
我只需要为正数 (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'。 谢谢。
可能带有范围数据注释:
[Range(0.0, Double.MaxValue)]
只有大于 0 的值才是您要查找的值,不是吗?
Entity Framework Fluent 配置当前不支持最小值或最大值设置,仅支持长度。
不过,您可以通过注释实现这样的验证:
[Range(1, int.MaxValue, ...)]
int YourInt{ get; set; }
但这只会在保存期间进行验证,而不会像流畅配置/迁移那样将实际约束添加到数据库中。
PS
我喜欢 Entity Framework 迁移,但我只在开发过程中使用它直到第一次发布。在您实际运送产品之前,这可以节省大量时间。之后,我通常会自己微调数据库,包括索引和约束,并完全放弃使用 EF 迁移。
数据库应该在生产中进行临床调整,因为它们通常是性能和优化中最(如果不是最)重要的因素之一。不幸的是,EF 迁移并没有为您提供所需的全部灵活性,即使它涵盖了最重要的用例。