从集合中获取所有外键记录
本文关键字:记录 集合 获取 | 更新日期: 2023-09-27 18:05:03
我有一个表Users和一个表Cities在我的MSSQL。
在我的Users表中,我有Id, Age和City_Id,并且在Cities中有一个外键Id。
我正在编程在 c# 和正在使用实体框架,并希望得到所有的城市与起点的用户集合。
我有的是:
db.Users.Where(x => x.Age == 18)
如何使用LINQ获取上面用户集合中引用的所有城市,而不需要foreach语句?
之类的?
db.Users.Where(x => x.Age == 18).Select(x => x.Cities)
使用SelectMany:
db.Users.Where(x => x.Age == 18).SelectMany(x => x.Cities)
另外,正如Andy指出的那样,考虑重复的可能性是否有效。如果没有添加Distinct:
db.Users.Where(x => x.Age == 18).SelectMany(x => x.Cities).Distinct()
我想你已经很接近了。
试题:
var results = db.Users.Where(u => u.Age == 18).SelectMany(c => c.City)
如果你想要一个强类型的,枚举的城市列表,那么:
List<City> results = db.Users.Where(u => u.Age == 18)
.SelectMany(c => c.City).ToList()