C# EF linq,删除Id的所有相关所有者Id

C# EF linq,删除Id的所有相关所有者Id,c#,entity-framework,linq,C#,Entity Framework,Linq,我有两张桌子,car和owner汽车-表使用所有者ID作为FK 我必须先删除与车主ID相关的汽车,然后才能删除该车主 如何从Car表中指向每个相关行并将它们一起删除?就我在第一行得到的错误而言: (这是一对多的关系,许多汽车可以有相同的所有者ID) 错误说明:无法从System.Linq.IQueryable转换为。如何删除与特定Id相关的所有车辆 车辆的结果返回列表 如果只需要一个结果,请使用以下命令 Car car = db.Cars.Where(c => c.OwnerId == i

我有两张桌子,
car
owner
<代码>汽车-表使用
所有者ID
作为FK

我必须先删除与
车主ID
相关的汽车,然后才能删除该
车主

如何从
Car
表中指向每个相关行并将它们一起删除?就我在第一行得到的错误而言:

(这是一对多的关系,许多汽车可以有相同的
所有者ID


错误说明:
无法从System.Linq.IQueryable转换为
。如何删除与特定
Id
相关的所有车辆

车辆的结果返回列表

如果只需要一个结果,请使用以下命令

Car car = db.Cars.Where(c => c.OwnerId == id).FirstOrDefault();//this gives me error: 
将以下内容用于多个

var cars = db.Cars.Where(c => c.OwnerId == id).ToList();//this gives me error: 

结果返回汽车列表

如果只需要一个结果,请使用以下命令

Car car = db.Cars.Where(c => c.OwnerId == id).FirstOrDefault();//this gives me error: 
将以下内容用于多个

var cars = db.Cars.Where(c => c.OwnerId == id).ToList();//this gives me error: 

你需要先获得所有的汽车

List<Car> list = db.Cars.Where(c => c.OwnerId == id).ToList();

//Delete all cars
foreach(Car car in list){
    db.Cars.Remove(car);
    db.SaveChanges();
}

Owner owner = db.Owners.Find(id);
db.Owners.Remove(owner);
db.SaveChanges();
List List=db.Cars.Where(c=>c.OwnerId==id.ToList();
//删除所有汽车
foreach(列表中的车辆){
db.Cars.Remove(car);
db.SaveChanges();
}
所有者=db.Owners.Find(id);
db.Owners.Remove(所有者);
db.SaveChanges();

您首先需要获得所有车辆

List<Car> list = db.Cars.Where(c => c.OwnerId == id).ToList();

//Delete all cars
foreach(Car car in list){
    db.Cars.Remove(car);
    db.SaveChanges();
}

Owner owner = db.Owners.Find(id);
db.Owners.Remove(owner);
db.SaveChanges();
List List=db.Cars.Where(c=>c.OwnerId==id.ToList();
//删除所有汽车
foreach(列表中的车辆){
db.Cars.Remove(car);
db.SaveChanges();
}
所有者=db.Owners.Find(id);
db.Owners.Remove(所有者);
db.SaveChanges();

查看Where表达式的返回类型。它和汽车一样吗?不。使用var car=db.Cars.Where(x=>c.OwnerId==id);您没有级联删除吗?请查看Where表达式的返回类型。它和汽车一样吗?不。使用var car=db.Cars.Where(x=>c.OwnerId==id);您没有级联删除吗?也感谢为一个结果提供的替代解决方案:)也感谢为一个结果提供的替代解决方案:)