C# 实体中可为null的字段的必需属性有什么好处?
例如,我有一个实体C# 实体中可为null的字段的必需属性有什么好处?,c#,asp.net-mvc,attributes,required,C#,Asp.net Mvc,Attributes,Required,例如,我有一个实体entity,它有一个类型为double?的字段SomeValue 我为这个字段设置了Required属性。此字段的行为是否类似于double public class Entity { [Required] public double? SomeValue { get;set;} } 首先,它与.NET数据类型无关。相反,它是数据库列的客户端对应项是否可为空。 如果未向标记有Required属性的属性提供值,则该实体将无效,而不会进行数据库服务器往返 严格地说,
entity
,它有一个类型为double?
的字段SomeValue
我为这个字段设置了Required
属性。此字段的行为是否类似于double
public class Entity
{
[Required]
public double? SomeValue { get;set;}
}
首先,它与.NET数据类型无关。相反,它是数据库列的客户端对应项是否可为空。 如果未向标记有
Required
属性的属性提供值,则该实体将无效,而不会进行数据库服务器往返
严格地说,可空的.NET数据类型对于不可空的数据库列没有意义。但这并不是真正的问题…如果没有提供值,则使用
double
将默认为0,而使用double?
将为空,以便您可以确定是否提供了值。将[Required]
添加到不可为null的类型是多余的,因为它总是有一个值。它的行为类似于可能为null的double。如果您在此处使用ASP.NET MVC,[必需]
将强制用户在输入中输入值control@Sinatr,是的,但另一方面,如果我的属性同时具有?
和[必需]
,则它会使SomeValue
成为必需。那是什么意思呢。什么时候使用?为什么我们可以让它成为可选的,即?
,然后[重新要求]
同时进行。请引导我。我很困惑。