我很确定我已经在某个地方看到了这个问题的答案,但是由于我在SO或谷歌上搜索了几次,我无论如何都要问它...
在Entity Framework中,删除数据对象的唯一方法似乎是
MyEntityModel ent = new MyEntityModel();
ent.DeleteObject(theObjectToDelete);
ent.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
但是,这种方法需要首先将对象加载到Controller,只是为了删除它.有没有办法删除仅引用其ID的业务对象?
如果使用Linq或Lambda表达式有更聪明的方法,那也没关系.但主要目的是避免加载数据只是为了删除它.
我想知道如何在不首先从数据库加载对象的情况下从Entity Framework 4.1中删除对象.我发现这些 其他的堆栈溢出2个回答,但他们不属于EF 4.1
我尝试了以下代码,但它不起作用
public void DeleteCar(int carId)
{
var car = new Car() { Id = carId };
_dbContext.Cars.Attach(car);
_dbContext.Cars.Remove(car);
_dbContext.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)
我想避免下面的代码.
public void DeleteCar(int carId)
{
var car = context.Cars.Find(carId);
_dbContext.Cars.Remove(car);
_dbContext.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)
我不想调用存储过程或执行原始sql.