使用实体框架获取单行而不获取所有数据

Srb*_*711 2 .net c# entity-framework

我试图了解是否可以使用实体框架从数据库中获取一行而不返回所有数据。也许我误解了 EF 的工作方式,但我相信它类似于以下内容:

TBL1

Id | Name           | Place
 1 | Teressa Green  | UK
 2 | Robin Banks    | Germany
 3 | Liam Neeson    | Canada
Run Code Online (Sandbox Code Playgroud)

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

context.tbl1.where(obj => obj.name = "Robin Banks")
Run Code Online (Sandbox Code Playgroud)

然而,据我所知,这是从表中获取所有数据,然后过滤到一行。有没有办法只将一行返回逻辑而不最初返回所有数据?

用一句话解决我的问题。当我只想要 1 时,我试图避免加载所有行。

Roh*_*hit 5

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

var result= db.yourtable
           .SingleOrDefault(c=>c.Name== "Some Name");
Run Code Online (Sandbox Code Playgroud)

每当您使用 SingleOrDefault 时,您都清楚地说明该查询最多应产生一个结果