我正在使用C#,并希望获得一些帮助来撰写LINQ FindAsync
语句,以查找具有特定MapLocation
的{{1}}。
我有一个id
,其中每个DbSet<MapCompany>
都有MapCompany
。
我有List<MapLocation>
的{{1}},需要撰写id
语句才能找到MapLocation
。
这是我到目前为止所做的:
LINQ
我可以帮忙写一下吗?
提前致谢
答案 0 :(得分:3)
FindAsync()
是DbSet<T>
上的一种方法。 SelectMany()
会返回IQueryable<T>
,因此FindAsync()
不可用。你必须使用SingleAsync()
(或FirstAsync()
,如果有可能重复的话)......
MapLocation maplocation = await db.mapCompanies
.SelectMany(mapCompany => mapCompany.mapLocations)
.SingleAsync(l => l.Id == id);
如果您想使用FindAsync()
,则必须在DbContext中创建一个映射到DbSet<MapLocation>
表的MapLocations
。然后你可以使用......
MapLocation maplocation = await db.MapLocations.FindAsync(id);