REST API 检查电子邮件是不是存在
Posted
技术标签:
【中文标题】REST API 检查电子邮件是不是存在【英文标题】:REST API check if email existsREST API 检查电子邮件是否存在 【发布时间】:2022-01-20 06:46:46 【问题描述】:我想检查用户是否存在数据库中的电子邮件。我想在 API 中执行此操作,它应该简单地返回 true 或 false。这就是我得到的;当用户存在时,如果用户在 DB 中不存在,则返回 true,则返回 500 内部服务器错误。我怎么能解决这个问题?提前致谢
public IHttpActionResult GetUserEmail(string Email)
var User = (db.Users
.Where(p => p.Email == Email)
.First());
if (User == null)
return Ok(false);
else
return Ok(true);
【问题讨论】:
.First()
如果db.Users.Where()
结果中不存在,将抛出异常。您需要使用FirstOrDefault()
。 ***.com/a/1024580/1910735
这能回答你的问题吗? When to use .First and when to use .FirstOrDefault with LINQ?
是的,非常感谢,现在可以使用
我希望您不是针对生产进行开发,因此显示 500 错误的页面还应该显示实际异常和堆栈跟踪,以便您可以调试它。您是否收到错误,它告诉您什么?
【参考方案1】:
上面已经给出了答案,我留下一个示例代码块作为示例。 :)
var User = db.Users.FirstOrDefault(p => p.Email == Email);
if (User == null)
return Ok(false);
else
return Ok(true);
// 或
var User = db.Users.Any(p => p.Email == Email);
if (!User)
return Ok(false);
else
return Ok(true);
【讨论】:
【参考方案2】:@Dawood Awan 在 cmets 中提到的更改的代码块 –
public IHttpActionResult GetUserEmail(string Email)
var User = (db.Users
.Where(p => p.Email == Email)
.FirstOrDefault());
if (User == null)
return Ok(false);
else
return Ok(true);
【讨论】:
以上是关于REST API 检查电子邮件是不是存在的主要内容,如果未能解决你的问题,请参考以下文章
如何检查MySQL中是不是存在一行? (即检查电子邮件是不是存在于 MySQL 中)
如何检查MySQL中是不是存在行? (即检查电子邮件是不是存在于 MySQL 中)