问题描述
|
我说我有以下三种方法:
DeleteProduct(int productId);
DeleteProductAttributes(int productId);
DeleteProductManufacturers(int productId);
我也有一个全局(在类内)对象上下文称它为_context。
我希望这些方法中的每一种都能独立工作,因为我需要在其他地方使用它们。但是,在删除产品方法中,我希望能够使用事务作用域,以防万一失败并留下没有属性或制造商的产品。所以我的DeleteProduct方法目前看起来像这样
public void DeleteProduct(int productId)
{
if (productId == 0)
return;
Product product = GetProductById(productId);
DeleteProductAttributes(productId);
DeleteProductManufacturers(productId);
_context.Products.DeleteObject(product);
}
有人在不破坏我上面的结构的情况下对我如何做到有任何见解吗?
任何帮助,不胜感激。
谢谢
解决方法
如果所有三种方法都使用存储在“ 2”字段中的相同上下文,则它们已经在事务中。所有数据修改(包括删除)仅在上下文中标记,并且仅在调用marked3ѭ时在数据库中执行。
SaveChanges
始终进行事务中的所有修改。