我有两个表,car
和 owner
. Car
-表使用 OwnerId
作为FK。
我必须删除与 OwnerId
相关的汽车在我删除那个Owner
之前.
如何从 Car
指向每个相关行表并将它们全部删除?到目前为止,我在第一行遇到错误:
(这是一对多的关系,很多车可以有相同的OwnerId
)
Car car = db.Cars.Where(c => c.OwnerId == id); //this gives me error:
db.Cars.Remove(car);
db.SaveChanges();
Owner owner = db.Owners.Find(id);
db.Owners.Remove(owner);
db.SaveChanges();
错误说:cannot convert from System.Linq.IQueryable<X.Models.Car> to <X.Models.Car>
.如何删除与特定 Id
相关的所有汽车?
最佳答案
你需要先获得所有的车
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();
关于c# - EF linq,删除所有相关的OwnerId到Id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39905066/