Range DataAnnotation不起作用(实体框架)

问题描述 投票:0回答:1

我正在尝试将Range DataAnnotation添加到我的EF模型中的属性:

public class Book {
...
[Range(100.0, 400.0)]
public double Price {get;set;}
...
}

但是这似乎不起作用。我删除了数据库并重新创建它,但是在Book表的price列上数据库中没有看到范围约束。

我还可以从代码中添加一本书,如下所示:

Book b = new Book() {
...
    Price = 50.0
...
}
_context.Book.Add(b);
_context.SaveChanges();

...即使价格低于指定的范围,它也会添加没有错误的书。

为什么Range不起作用?该数据库是SQL Server。我不能在SQL Server中实现范围约束吗?这是否意味着其他一些数据库,例如Oracle?

c# sql-server entity-framework-core range data-annotations
1个回答
1
投票

首先,[Range(100.0, 400.0)]是部分使用数据注释验证器(C#)进行验证之一,您仅用于c#验证目的。阅读here了解更多详细信息。

第二,如果要检查SQL约束最小值/最大值,则应阅读here以了解如何正确使用它。

© www.soinside.com 2019 - 2024. All rights reserved.