Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从集合中获取所有外键记录_C#_Linq_Entity Framework - Fatal编程技术网

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

我的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.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()
,否则结果可能会重复。啊,我真的很接近了。非常感谢。非常感谢,正是我想要的。非常感谢,正是我想要的。