【发布时间】:2021-01-18 11:50:52
【问题描述】:
我要做什么?我需要将一个新创建的对象发布到数据库,传入的对象可能有一个空值。创建的对象在需要的地方设置为#nullible true。
当数据进入并且我落在对象中的一个空字符串上时,我得到一个空引用并被捕获。
我的代码:
Objects.Data.Info.StoredData postData = new Objects.Data.Info.StoredData
{
Name = data.data.Name,
Type = data.data.Type,
Price = data.data.Price,
Indicator = data.data.Indicator,
Scan = data.data.Scan,
Comment = data.data.Extra
};
db.Information.Add(postData);
db.SaveChanges();
data.data.Extra 有时可以为空。
我通常会写 if 语句来解决这个问题,但不觉得这是最好的做法。我应该往哪个方向走?我检查了其他一些问题和 msdn,但找不到明确的路径。
谢谢。
【问题讨论】:
-
这里有实际问题吗?您没有取消引用
data.data.Extra,因此您不会从所显示的内容中获得 NRE。只要Comment可以为空(属性和映射列),这应该 没问题。如果data.data可以为空,那么您必须在访问Extra属性(以及所有其他属性)之前进行一些测试。如果data.data.Extra是null,你期待什么样的问题?请记住,#nullable适用于代码,而不是对象。