我有一个方法,可以接收要删除的一些行的ID。我正在使用类似以下代码的方式:
因为删除操作会删掉存在的行,所以它能够正常工作。但是,如果有一个或多个行不存在,那么我就会遇到异常,并且没有一行被删除,尽管其中一些行存在。
如果我在T-SQL中执行此查询,我不会遇到问题,因为数据库会删除现有的行并忽略不存在的行,因为最终我要删除它们,所以如果另一个进程为我删除了它们,那就没有问题。
我可以通过从数据库刷新dbContext来处理乐观并发异常,但我认为这样做会进行额外的查询,而这些查询可以避免。
是否有任何方法使EF像T-SQL一样工作?如果我尝试删除不存在的行,则忽略它并删除其余的行。
谢谢。
public bool delete(IEnumerable<long> paramIeId)
{
using(myContext)
{
foreach(long iterator in paramIeId)
{
nyDbContext.Remove(new MyType(){ID = iterator});
}
}
}
因为删除操作会删掉存在的行,所以它能够正常工作。但是,如果有一个或多个行不存在,那么我就会遇到异常,并且没有一行被删除,尽管其中一些行存在。
如果我在T-SQL中执行此查询,我不会遇到问题,因为数据库会删除现有的行并忽略不存在的行,因为最终我要删除它们,所以如果另一个进程为我删除了它们,那就没有问题。
我可以通过从数据库刷新dbContext来处理乐观并发异常,但我认为这样做会进行额外的查询,而这些查询可以避免。
是否有任何方法使EF像T-SQL一样工作?如果我尝试删除不存在的行,则忽略它并删除其余的行。
谢谢。