var newThing = db.Things.SingleOrDefault(t => t.ThingName == viewModel.ThingName);
if (newThing == null)
{
newThing.ThingName.Equals(viewModel.ThingName);
}
如果上述if语句为真,我收到
Object reference not set to an instance of an object
异常,因为newThing为null。是否可以初始化NewThing并将newThing.ThingName设置为viewModel.ThingName?
答案 0 :(得分:2)
您可以初始化它并设置其值
if (newThing == null)
{
newThing = new Thing();
newThing.ThingName = viewModel.ThingName;
}
答案 1 :(得分:2)
除了@Satpals解决方案,这里还有一个单行程序来从DataBase获取项目或初始化一个新项目:
var newThing = db.Things.SingleOrDefault
(t => t.ThingName == viewModel.ThingName) ??
new Thing { ThingName = viewModel.ThingName };
答案 2 :(得分:0)
是的,您可以,但您需要先创建Thing
的新实例。
段:
if (newThing == null)
{
newThing = new Thing();
newThing.ThingName = viewModel.ThingName; //Set the ThingName to what is wanted.
}
希望这有帮助。
答案 3 :(得分:0)
我觉得你很困惑。
something.Equals(somethingElse);
返回true or false
something
和somethingElse
是否相等。
something = somethingElse;
将something
设置为somethingElse
。 这就是你想要做的。
此外:
something == somethingElse
返回true or false
something
和somethingElse
是否相等。