C# 如何使用linq在数据库集中查找项目

C# 如何使用linq在数据库集中查找项目,c#,linq,list,asynchronous,dbset,C#,Linq,List,Asynchronous,Dbset,我正在使用C#并希望得到一些帮助来编写LINQ FindAsync语句以查找具有特定id的MapLocation 我有一个DbSet,其中每个MapCompany都有一个列表 我有MapLocation的id,需要编写LINQ语句来查找MapLocation 以下是我到目前为止的情况: MapLocation maplocation = await db.mapCompanies.SelectMany(mapCompany => mapCompany.mapLocations).FindA

我正在使用C#并希望得到一些帮助来编写
LINQ FindAsync
语句以查找具有特定
id
MapLocation

我有一个
DbSet
,其中每个
MapCompany
都有一个
列表

我有
MapLocation
id
,需要编写
LINQ
语句来查找
MapLocation

以下是我到目前为止的情况:

MapLocation maplocation = await db.mapCompanies.SelectMany(mapCompany => mapCompany.mapLocations).FindAsync(id);
能帮我把这个写对吗

提前感谢

FindAsync()
DbSet
上的一种方法
SelectMany()
返回一个
IQueryable
,因此
FindAsync()
不可用。您必须使用
SingleAsync()
(或
FirstAsync()
,如果可能存在重复项)

如果要使用
FindAsync()
,则必须在数据库上下文中创建一个映射到
MapLocations
表的
DbSet
。那你就可以用

MapLocation maplocation = await db.MapLocations.FindAsync(id);

那代码不起作用吗?会发生什么?
MapLocation maplocation = await db.MapLocations.FindAsync(id);