2
我說我有以下三種方法:實體框架和交易範圍
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);
}
沒有人有任何見解,我怎麼能做到這一點,而不破壞我上面的結構?
任何幫助非常感謝。
感謝
*這三種方法都使用相同的上下文。 *所有這三種方法都調用savechanges()。 *我將發佈所有三種方法的正確代碼 – Peuge 2011-06-16 00:11:20
抱歉無法編輯上述評論。你是說如果我運行上述方法並且DeleteProductManufacturers失敗,那麼DeleteProductAttributes將被回滾? – Peuge 2011-06-16 00:20:18
如果他們使用單個'SaveChanges',那麼他們將全部回滾。 – 2011-06-16 06:19:02