嵌套的UnitOfWork在Asp.net应用程序中不起作用

时间:2018-06-01 09:52:12

标签: c# asp.net unit-of-work

我有一个场景,我必须将UnitOfWork用于UnitOfWork中的一个表用于另一个表。它在某种程度上不起作用。

CurrentUnitOfWork.Save()正在按预期工作,但是我在tbl_data表中更新标志值的代码实际上并没有更新标志。

以下是我到目前为止使用的代码结构:

using (UnitOfWork CurrentUnitofWork = new UnitOfWork())    
 {
  int empID=2134;
  //Calculation for having a value of data field     
....   
....    
...
CurrentUnitofWork.Save();

if(data==1)  
   UpdateFlag(1, empID); 
else
  UpdateFlag(0, empID);  
 }

这里有UpdateFlag方法的代码:

   public UpdateFlag(int flagValue, int empID)    
   {    
     using (UnitOfWork unitOfWork= new UnitOfWork())
       {
         tbl_data empDetails = unitOfWork.tbl_data.get(x=>x.EmpID==empID).ToList().Single();
         if (empDetails != null)
         {
           empDetails.ActiveFlag= flagValue;
           unitOfWork.tbl_data.Update(empDetails);
           unitOfWork.Save();
         }
       }
   }

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。

using (UnitOfWork CurrentUnitofWork = new UnitOfWork())    
 {
  int empID=2134;
  //Calculation for having a value of data field     
....   
....    
...
CurrentUnitofWork.Save();

if(data==1)  
   UpdateFlag(1, empID); 
else
  UpdateFlag(0, empID); 

CurrentUnitofWork.Save(); 
 }

在更新内部工作单元方法后添加CurrentUnitofWork.Save();,解决了我的问题。我不确定它背后的逻辑是什么,但它对我有用。