Asp.net mvc 如果使用asp.net mvc将String.Empty值指定给属性为Null,那么最好的方法是什么

Asp.net mvc 如果使用asp.net mvc将String.Empty值指定给属性为Null,那么最好的方法是什么,asp.net-mvc,asp.net-mvc-2,Asp.net Mvc,Asp.net Mvc 2,我在数据库中有一个列,它的名称为字符串,值为null 当我没有在名称字段中输入任何内容时,它将以NULL的形式保存到数据库中 但我需要将此值保存为string.Empty或“” 我是这样做的 h.assignedName= m.Name== null ? string.Empty : m.Name; ViewModel属性已更改 Public string Name {get;set;} 我的问题是,我们是否可以通过其他方式来分配这个值has String.Empty,而不执行上述任何

我在数据库中有一个列,它的名称为字符串,值为null

当我没有在名称字段中输入任何内容时,它将以NULL的形式保存到数据库中

但我需要将此值保存为string.Empty或“”

我是这样做的

   h.assignedName= m.Name== null ? string.Empty : m.Name;
ViewModel属性已更改

Public string Name {get;set;}
我的问题是,我们是否可以通过其他方式来分配这个值has String.Empty,而不执行上述任何条件

我不想用?操作员检查状况或是否存在状况


谢谢

您可以将数据库中的列更改为非
NULL
,并将默认值设置为“”。这样你就不必使用了?有条件的不确定这是否是最佳实践,但这将节省您添加额外代码的时间

另一种方法是围绕数据创建包装器类。我看到您在代码示例中使用了
m.Name
。你可以:

    public class MyWrapper
    {
        private string _name;

        public string Name
        {
            get {
                 if (String.IsNullOrEmpty(_name)){
                   return String.Empty;
                 }

                 return _name;
           }

          set{
     _name = value;
}
       }
    }

因此,当您从数据库读取数据时,请创建包装器类的实例,以在获取名称时隐藏详细信息。

您可以将数据库中的列更改为非空,并将默认值设置为“”。这样你就不必使用了?有条件的不确定这是否是最佳实践,但这将节省您添加额外代码的时间

另一种方法是围绕数据创建包装器类。我看到您在代码示例中使用了
m.Name
。你可以:

    public class MyWrapper
    {
        private string _name;

        public string Name
        {
            get {
                 if (String.IsNullOrEmpty(_name)){
                   return String.Empty;
                 }

                 return _name;
           }

          set{
     _name = value;
}
       }
    }

<> P>这样,当您从数据库读取数据时,创建包装类的实例以在获得名称时隐藏细节。

< P>您可以考虑更改代码构造的布局,并使用类似的业务规则。
“M.Nead永远不会是NULL”。然后您应该将它初始化为String。空,以便它永远不能为null。

< P>您可以考虑更改代码构造的布局,并使用类似的业务规则。
“m.Name可能永远不会为null。”然后您应该将其初始化为String.Empty,这样它就永远不会为null。

Jason的想法是合理的,假设您不关心做那个小的更改。 另一种方法是放弃自动属性并在get中处理检查

private string name;
public string Name
{
   get { return (name == null) ? string.Empty : name; }
}
对于您想要使用这种样式的所有属性,这显然有更多的初始代码


或者,您可以确保它在构造函数中永远不为空

Jason的想法是合理的,假设您不关心做那个小更改。 另一种方法是放弃自动属性并在get中处理检查

private string name;
public string Name
{
   get { return (name == null) ? string.Empty : name; }
}
对于您想要使用这种样式的所有属性,这显然有更多的初始代码


或者,您可以确保构造函数中的值从不为null

请告诉我,如果数据库值不为null,如何将值设置为“”?您认为哪一个不是最佳做法?谢谢Jas。如果使用此属性在ViewModel中设置空值。将数据库列设置为空值字段可以吗?如果数据库值不为空,请告诉我如何将值设置为“”?您说哪一个不是最佳做法?谢谢Jas。如果使用此属性在ViewModel中设置空值。将数据库列作为空值字段可以吗?