Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体中可为null的字段的必需属性有什么好处?_C#_Asp.net Mvc_Attributes_Required - Fatal编程技术网

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
成为必需。那是什么意思呢。什么时候使用?为什么我们可以让它成为可选的,即
,然后
[重新要求]
同时进行。请引导我。我很困惑。