想象一下,appservice中有一种方法可以升级数据,最后通过Ssrs以Pdf格式生成报告。所有方法都是工作单元,因此在调用方法uow.CompleteAsync()之前,数据不会在服务器中提交。因此无法调用GenerateSampleReport()。为了解决这个问题,我们使用了[工作单元(Isdisabled = true))所以编写方法是这样的:
[UnitOfWork(IsDisabled =true)]
public async Task Method()
{
using (var uow = UnitOfWorkManager.Begin())
{
//some data manipulation
await uow.CompleteAsync();
}
var pdfFile GenerateSampleReport();
}
但是,在提供报告时,如果存在任何异常,则无法生成报告,并且必须回滚数据操作(有关数据完整性的问题)。如何解决问题?
答案 0 :(得分:0)
你不应该开始自己的工作单位。并且不要禁用UnitOfWork。通常,如果Method()是一个应用程序服务方法,那么这应该可以正常工作。
public async Task Method()
{
//some data manipulation...
var pdfFile GenerateSampleReport();//if any exception occurs in this line, the db transaction will be rolled back.
}
你以前检查了吗?