我说我有以下三种方法:
DeleteProduct(int productId);
DeleteProductAttributes(int productId);
DeleteProductManufacturers(int productId);
我还有一个全局(在类内)Object上下文调用它_context。 我希望这些方法中的每一种都可以独立工作,因为我需要在其他地方使用它们。但是在删除产品方法中,我希望能够使用事务范围,以防出现故障,我得到的产品没有属性或制造商。所以我的DeleteProduct方法目前看起来像这样
public void DeleteProduct(int productId)
{
if (productId == 0)
return;
Product product = GetProductById(productId);
DeleteProductAttributes(productId);
DeleteProductManufacturers(productId);
_context.Products.DeleteObject(product);
}
有没有人能够在不破坏我上面的结构的情况下如何做到这一点?
任何帮助都非常感激。
感谢
答案 0 :(得分:3)
如果所有三种方法都使用_context
字段中存储的相同上下文,则它们已经在事务中。所有数据修改(包括删除)仅在上下文中标记,并且仅在您调用SaveChanges
时才在数据库中执行。 SaveChanges
始终在事务中进行所有修改。