C# 从集合中获取所有外键记录
我的MSSQL中有一个包含用户的表和一个包含城市的表 在我的用户表中,我有Id、Age和City_Id,外键是Cities中的Id 我正在用C#编程,正在使用实体框架并希望在用户集合中获得所有具有起点的城市 我得到的是:C# 从集合中获取所有外键记录,c#,linq,entity-framework,C#,Linq,Entity Framework,我的MSSQL中有一个包含用户的表和一个包含城市的表 在我的用户表中,我有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.Citie
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)
同样,正如安迪指出的,考虑复制的可能性是否有效。如果未添加,请添加不同的:
db.Users.Where(x => x.Age == 18).SelectMany(x => x.Cities).Distinct()
使用SelectMany:
db.Users.Where(x => x.Age == 18).SelectMany(x => x.Cities)
同样,正如安迪指出的,考虑复制的可能性是否有效。如果未添加,请添加不同的:
db.Users.Where(x => x.Age == 18).SelectMany(x => x.Cities).Distinct()
我想你很接近了
尝试:
如果需要强类型枚举城市列表,请执行以下操作:
List<City> results = db.Users.Where(u => u.Age == 18)
.SelectMany(c => c.City).ToList()
List results=db.Users.Where(u=>u.Age==18)
.SelectMany(c=>c.City).ToList()
我想你很接近了
尝试:
如果需要强类型枚举城市列表,请执行以下操作:
List<City> results = db.Users.Where(u => u.Age == 18)
.SelectMany(c => c.City).ToList()
List results=db.Users.Where(u=>u.Age==18)
.SelectMany(c=>c.City).ToList()
你打败了我,我正要发布这个。我想补充一点,他可能还需要Distinct()
,否则结果可能会重复。啊,我真的很接近了。非常感谢。你打败了我,我正要发这个。我想补充一点,他可能还需要Distinct()
,否则结果可能会重复。啊,我真的很接近了。非常感谢。非常感谢,正是我想要的。非常感谢,正是我想要的。