在我的存储库实现中,我可以使用lambda表达式运行以下查询:
public IList<User> GetUsersFromCountry(string)
{
return _UserRepository.Where(x => x.Country == "Sweden").ToList();
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,这么好,简单的东西.但是,我在编写嵌套 - >嵌套列表的lambda表达式时遇到了困难.给出以下示例(抱歉无法想到更好的一个):
以下查询绝对正常,并返回所有俱乐部,其成员年龄超过45岁
public IList<Clubs> GetGoldMembers()
{
var clubs = from c in ClubRepository
from m in c.Memberships
where m.User.Age > 45
select c;
return clubs;
}
Run Code Online (Sandbox Code Playgroud)
目前,这是我对lambda表达的知识结束的地方.
我如何使用lambda表达式对ClubRepository编写上述查询,类似于上面的示例?
Jas*_*yon 27
这可能有用(未经测试)......
var clubs = ClubRepository.Where(c=>c.MemberShips.Any(m=>m.User.Age > 45));
Run Code Online (Sandbox Code Playgroud)
Mar*_*ann 17
这是一种方法:
var clubs = clubRepository
.SelectMany(c => c.Memberships, (c, m) => new { c, m })
.Where(x => x.m.User.Age > 45)
.Select(x => x.c);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28074 次 |
| 最近记录: |