如果使用 asp.net mvc 将 String.Empty 值分配给属性为 Null,最好的方法是什么
我在数据库中有一个列,用空值命名其字符串。
当我不在名称字段中输入任何内容时,它会将其保存为 NULL 到数据库中。
但我需要将此值保存为 string.Empty 或“”。
我做了这样的事情。
h.assignedName= m.Name== null ? string.Empty : m.Name;
ViewModel 属性有
Public string Name {get;set;}
我的问题是我们可以通过任何其他方式将此值分配为 String.Empty 而不执行上述任何条件吗?
我不想用?运算符检查条件或 if 条件。
谢谢
I have a column in the database which is Name its string with null value.
when I dont enter anything in the Name Field its saving to the database as NULL.
but I need to save this value as string.Empty or "".
I did soemthing like this.
h.assignedName= m.Name== null ? string.Empty : m.Name;
ViewModel Property has
Public string Name {get;set;}
my question is any other way we can assign this value has String.Empty without doing any condition like above?
I dont want to use ? operator to check the condition or if condition.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以将数据库中的列更改为非
NULL
并将默认值设置为“”。这样你就不必使用 ?有条件的。不确定这是否是最佳实践,但它可以让您不必添加额外的代码来满足它。另一种方法是围绕数据创建一个包装类。我发现您在代码示例中使用了
m.Name
。您可以:因此,当您从数据库读取数据时,创建包装类的一个实例,以在获取名称时隐藏详细信息。
You could change the column in the database to not be
NULL
and set the default value to ''. That way you would not have to use the ? conditional. Not sure if this is best practise, but it would save you having to add additional code to cater for it.The other way is to create a wrapper class around the data. I see you're using
m.Name
in your code example. You could have:So when you're reading the data from the database, create an instance of your wrapper class to hide the details when getting the Name.
假设您不关心做出那个微小的改变,杰森的想法是合理的。
另一种方法是放弃自动属性并处理 get 中的检查,
这显然对于您想要使用此样式的所有属性有更多的初始代码开销。
或者你可以确保它在你的构造函数中永远不为空
Jason's idea is sound assuming you do not care about making that minor change.
Another way you could do it is to abandon your automatic property and handle the checking in the get
This obviously has more initial code over head for all properties that you want to utilize this style.
or you could ensure it is never null in your constructors
您可能会考虑更改代码构造的布局并使用类似的业务规则
“m.Name 永远不会为空。”然后你应该将它初始化为 String.Empty,这样它就永远不会为 null。
You might consider changing the layout of your code construction and use a business rule like
"m.Name may never be null." And then you should initialize it as String.Empty, so that it can never be null.