如何使用linq在dbset中查找项目

时间:2014-07-18 07:59:26

标签: c# linq list asynchronous dbset

我正在使用C#,并希望获得一些帮助来撰写LINQ FindAsync语句,以查找具有特定MapLocation的{​​{1}}。

我有一个id,其中每个DbSet<MapCompany>都有MapCompany

我有List<MapLocation>的{​​{1}},需要撰写id语句才能找到MapLocation

这是我到目前为止所做的:

LINQ

我可以帮忙写一下吗?

提前致谢

1 个答案:

答案 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);