Unb*_*ble 0 c# asp.net-mvc entity-framework asp.net-mvc-5
我不知道该用在哪里Single,又该用在哪里SingleOrDefault。我理解两者的定义。
单身的:
它总是返回一行。
如果没有找到行,我会得到一个异常。
如果找到多行,我会得到一个异常。
单一或默认:
它总是返回一行,如果没有找到则返回默认值(What is the meaning of this DEFAULT VALUE").
如果有多行则异常。
问题1:“它将返回默认值”是什么意思
问题2:什么时候使用Single,什么时候使用SingleOrDefault。
我有一个删除功能,其中有以下代码:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Delete(int resumeId)
{
var r = _context
.Resumes
.Where(c => c.ResumeId == resumeId).SingleOrDefault();
_context.Resumes.Remove(r);
_context.SaveChanges();
return RedirectToAction("ResumeCenter");
}
Run Code Online (Sandbox Code Playgroud)
我只是盲目地到处放置SingleOrDefault(我至少期望一个值),请告诉我一个现实世界的场景,何时我应该使用“Single”以及我应该在哪里使用“SingleOrDefault”。
正如您所说 -
Single()如果没有找到行,则会引发异常。
SingleOrDefault()将返回默认值(引用类型为 null,整数为 0,字符为 \0 等)。
Single()在以下两种情况之一中使用:
0一个 int 但无法判断它是否是因为您得到了没有回退或者它是一个有效值。用于SingleOrDefault()任何其他情况。如果未找到该行,您需要将获得的值与其默认值进行比较。
为了进一步阅读,这里有一个关于默认值表达式的 Microsoft 页面的链接。
| 归档时间: |
|
| 查看次数: |
4435 次 |
| 最近记录: |