我有一张简单的桌子
这是我的代码的摘要。
var person = db.Person.Where(p => p.ID == inputId).Select(o => o.ID).FirstOrDefault();
返回人;
inputId是用户输入字段。我需要的是,如果inputId不在表中(例如5、6、7等),我希望使用if / else选项来创建新用户/重新输入正确的ID。
谢谢
答案 0 :(得分:5)
null-coalescing运算符是一种方式
var person = db.Person.FirstOrDefault(p => p.ID == inputId) ?? new Person();
答案 1 :(得分:2)
首先,您返回ID,而不是人员。要返回一个人,您应该这样做:
var person = db.Person.FirstOrDefault(p => p.ID == inputId);
对于这个问题,我希望使用此选项:
if (db.Person.FirstOrDefault(p => p.ID == inputId) is Person person)
{
//...
}
答案 2 :(得分:0)
首先选择记录
var person = db.Person.FirstOrDefault(p => p.ID == inputId);
if(person == null) //check if not exist
{
//add
db.Person.Add(PersonDetails);
db.SaveChanges();
}
// else return person object
return person;
答案 3 :(得分:-1)
您可以使用.Any()
方法检查记录的存在:
if(db.Person.Any(p => p.ID == inputID))
{
return db.Person.First(p => p.ID == inputID);
}
else
{
//Set user notification message
}