2015-07-13 9 views
0

Так что я использую UnitOfWork для сохранения объекта в базу данных. Эта работа отлично. Однако, когда я пытаюсь отредактировать объект и сохранить его снова, в базу данных не вносятся изменения.UnitOfWork CommitChanges не редактирует строку DB

Вот фрагмент кода используется для сохранения:

this.uow = new UnitOfWork(); 
this.job = new Job(uow); 

using (UnitOfWork u = new UnitOfWork()) 
      { 
       job.Truck = cboTrucks.SelectedItem.ToString(); 
       job.Driver = cboDriver.SelectedItem.ToString(); 
       job.Load = txtLoad.Text; 
       job.Comment = txtComment.Text; 
       job.FileOk = chkFile.Checked; 
       job.Notified = chkNotified.Checked; 
       job.JobDate = dteJobDate.DateTime; 

       u.CommitChanges(); 
      } 
+0

Почему вы создаете объект Job w с одной UnitOfWork, но затем пытается сохранить ее под другим модулем UnitOfWork? Похоже, что это может легко привести к исключению SessionMixingException. https://documentation.devexpress.com/#corelibraries/clsDevExpressXpoExceptionsSessionMixingExceptiontopic – Brendon

+0

@Brendon Я согласен с вами. Мне также приходило в голову, что то, что я делаю, неверно. Я быстро избавился от него, когда решил свою проблему. –

ответ

0

я, наконец, получил это работает, это то, что я изменил:

ДО:

this.uow = new UnitOfWork(); 
this.job = new Job(uow); 

ПОСЛЕ:

this.uow = new UnitOfWork(); 
this.job = new XPQuery<TIS.Model.Internal.Job>(uow).Where(q => q.Id == job.Id).FirstOrDefault();