MVC を使用するプロジェクトがあり、サービスをインスタンス化するコントローラーがあり、サービスはリポジトリを管理し、リポジトリで CRUD 操作を行います。問題は、グリッド コントロール (Telerik) にサービスからのデータを入力すると、更新を行ってデータを更新すると、新しいデータではなく古いデータが表示されることです。破棄/インスタンス化する必要があるのはコンテキスト変数の永続性の問題だと思いますが、いつどこで(Unit Of Work変数がサービスに配置されているか)よくわかりません。
<HttpPost()>
<GridAction()>
Function Edit(id As Integer, name As String, clientNo As String, image As String, unit As String) As ActionResult
Try
Dim org = Me._orgService.GetOrgById(id)
With org
.orgNAME = name
.orgCLIENTNO = clientNo
.orgIMAGE = image
.orgUNIT = unit
End With
TryUpdateModel(org)
Me._orgService.EditOrg(org)
Catch ex As Exception
'Log the error
ModelState.AddModelError("", MS_UNABLE_SAVE_CHANGES)
Response.StatusCode = 500
Return Content(String.Join("", (From state In ModelState Select state).SelectMany(Function(s) s.Value.Errors).Select(Function(e) e.ErrorMessage).ToArray()))
End Try
Return View(New GridModel(All()))
End Function
これがサービスです
Public Sub EditOrg(org As hdmtORG) Implements IOrgService.EditOrg
Me._context.OrgRepository.Edit(org)
Save()
End Sub
これはリポジトリです(汎用)
Public Overridable Sub Update(entity As TEntity) Implements IEntityRepository(Of TEntity).Edit
Me._objectSet.Context.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified)
End Sub
何か案が?
本当にありがとう。