c# - 使用 Entity Framework 获取单行而不获取所有数据

标签 c# .net entity-framework

<分区>

我正在尝试了解是否可以使用 Entity Framework 从数据库中获取单行而不返回所有数据。也许我误解了 EF 的工作原理,但我相信它类似于以下内容:

TBL1

Id | Name           | Place
 1 | Teressa Green  | UK
 2 | Robin Banks    | Germany
 3 | Liam Neeson    | Canada

如果我想要Robin Banks 我会做类似的事情

context.tbl1.where(obj => obj.name = "Robin Banks")

然而,据我了解,这是从表中获取所有数据,然后向下过滤到一行。有没有一种方法可以只将一行返回给逻辑,而无需一开始就返回所有数据?

把我的问题放在一句话里。当我只想要 1 行时,我试图避免加载所有行。

最佳答案

我认为你需要在这里使用 SingleOrDefault

var result= db.yourtable
           .SingleOrDefault(c=>c.Name== "Some Name");

每当您使用 SingleOrDefault 时,您都明确声明该查询最多应产生一个结果

关于c# - 使用 Entity Framework 获取单行而不获取所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34285822/

相关文章:

C# 在将字符串转换为 byte[] 并将 byte[] 转换为字符串时出现内存不足异常

c# - 当 WPF 中的大量 UI 更新时,ProgressRing 卡住了?

c# - 如何使用Inno Setup安装Windows服务?

c# - 在 Entity Framework 中按名称获取字段

asp.net - 如何在 ASP.NET Core 2.0 和 EF Core 2.0 中将应用程序设置从项目根目录获取到 IDesignTimeDbContextFactory 实现

c# - 如何使用反射对 Entity Framework 模型的属性执行 ToString

c# - twain 问题 : is it possible to scan just one document from feeder?

c# - 两个列表按升序排序另一个按降序但受约束

c# - 为什么 Line.Stroke.ToString() 返回 8 个符号的十六进制代码

c# - EF应该封装在基类中吗?