我有一种方法,我想根据数据库状态做不同的事情。
我的方法做的最后一件事就是将一些内容保存到数据库中。每次运行此方法时,它都会按预期工作/值会更改 - 除了第一次。
由于一个复杂的原因,我不能在这里使用种子方法,但是,这样做的正确方法是什么?
添加
if (db.Settings.First(x=>x.name=="DBState").Value == "1")
return false;
导致序列不存在错误,以及
if (db.Settings.FirstOrDefault(x=>x.name=="DBState").Value == "1")
return false;
导致以下异常
对象引用未设置为对象的实例。
这样做的正确方法是什么?
答案 0 :(得分:6)
只需使用Any()
来获取布尔结果?
return db.Settings.Any(x => x.name == "DBState" && x.Value == "1");
答案 1 :(得分:2)
您正在检查null的值,因此是异常。
尝试
var myObj = db.Settings.FirstOrDefault(x=>x.name=="DBState");
if(myObj != null){
// do stuff here safely
}
答案 2 :(得分:1)
使用最后一个选项并为其添加空检查:
var setting = db.Settings.FirstOrDefault(x=>x.name=="DBState");
if (setting != null && setting.Value == "1")
return false;