我有三个类,带有外键的Sql。
public School
{
int id;
List<Room> Rooms;
}
public Room
{
int id;
ind idSchool;
List<Chair> Chairs;
}
pulic Chair
{
int id;
int idRoom;
int legs;
}
当我使用linq向学校发送数据库请求时,返回所有元素(每个学校都有所有房间,每个房间都有椅子)
我希望学校的房间只有三条腿的椅子。(从学校中取出所有的椅子。腿!= 3)
答案 0 :(得分:2)
包含至少一间至少有一个三脚椅的房间的学校:
var filteredSchools = schools.Where(school =>
school.Rooms.Any(room =>
room.Chairs.Any(chair => chair.legs == 3)));
您提到您从数据库中获取此信息,因此要删除三脚椅子,您可以尝试这样的事情:
var chairIdsToRemove = filteredSchools.SelectMany(school =>
school.Rooms.SelectMany(room =>
room.Chairs.Where(chair =>
chair.legs != 3).Select(chair => chair.id)))
.ToList();
// Remove chairs with ids in chairIdsToRemove from the database.