c# - 如果我想在我的数据库中找到准确的搜索结果,我应该使用什么来代替 "FirstOrDefault()"?

标签 c# asp.net-mvc asp.net-mvc-3 entity-framework

我目前在我的 Controller 中使用以下代码:

Instructor instructor = db.Instructors.FirstOrDefault(
    o => o.UserName == User.Identity.Name);

通过用户名选择某人。我的理解是,如果我有具有相似用户名的用户,我将无法使用“FirstOrDefault()”(即当我有名为“MrUserOne”、“MrUserTwo”和“MrUser”的用户时搜索“MrUser”可能会产生“MrUserOne”,因为这是出现的“第一个”搜索结果),如果我对“FirstOrDefault” future 困难的理解是正确的,那么我应该用什么代替它?

还是我对 FirstOrDefault 工作原理的理解有误?

最佳答案

看来您不太了解 == 运算符在这种情况下的工作原理。假设 UserNameName 值都是 string 那么 == 将进行精确的序号匹配。名称 "MrUser""MrUserOne" 完全不匹配。它只会匹配 "MrUser"

话虽如此,这段代码将返回其 Name 值与 o.UserName 完全匹配的第一个用户,如果没有则返回 null

关于c# - 如果我想在我的数据库中找到准确的搜索结果,我应该使用什么来代替 "FirstOrDefault()"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10217641/

相关文章:

c# - Xamarin Forms - 谷歌地图在 map 上显示多个标记

c# - 如何将值添加到类类型的命名数组?

c# - JavaScriptSerializer 类是否已弃用?

asp.net-mvc - 使用 Kendo Grid 自动导出到 Excel

html - 样式不适用于此表

c# - 远程属性验证未在 Asp.Net MVC 中触发

c# - 更改模型类后删除和更新数据库?

c# - ASP.NET MVC3 : ValidationMessageFor on new line

asp.net-mvc-3 - 使用 NAnt 构建 ASP.NET MVC 3 时出现 System.Web.Mvc 丢失错误

c# - 时间跨度与持续时间