在ASP.NETMVCCore中是否有任何数据注解用于允许的值?由于SQL Server中没有枚举,因此我无法将带有枚举字段的类迁移到数据库中。我想给类中的字段给予可能/允许的值。有什么办法可以做到这一点吗?
public class Employee
{
[Key]
public int ID { get; set; }
[Required]
public string Name { get; set; }
[Required]
public string Status { get; set; }
}
我想提供Active和Inactive作为Status字段的唯一可能值。
3条答案
按热度按时间q8l4jmvw1#
你也可以使用下面的正则表达式来实现这一点:
更多细节可以通过找到here
xoefb8l82#
正如@ps2goat所提到的,您可以在数据库上使用检查约束。但是,对于进入API的模型,您可能仍然希望在那里提供验证。理想情况下,您将在合理范围内尽可能地防止坏数据进入数据层。您没有提到是否使用n层架构,或者您的控制器是否直接引用数据模型。无论哪种方式,我相信这个自定义属性都可以在API层或实体模型上使用。
This是一个很好的答案,它解释了如何创建自定义验证属性。这是一个古老的答案,但它仍然适用于.Net Core。here是.Net Core中自定义验证属性的答案。它基本上看起来像这样:
在你的模型中:
l7wslrjt3#
在.NET 8 Preview 2中,您可以使用AllowedValues属性。
更多信息:https://devblogs.microsoft.com/dotnet/announcing-dotnet-8-preview-2/#allowedvaluesattribute-and-deniedvaluesattribute。