를 SQL로 저장소 패턴 및 LINQ를 사용하여 업데이트하는 데이터베이스를 가져올 수 없습니다내 프로젝트는 다음과 같은 설정을 가지고
컨트롤러 ->서비스 (검증) ->저장소 (LINQ에 대한) ->DBML ->데이터베이스
컨트롤러
''# <AcceptVerbs(HttpVerbs.Post)> - hiding this line so that code formatting looks proper in SO.
Function Edit(ByVal user As Domain.User, ByVal id As Integer) As ActionResult
If ModelState.IsValid Then
If Not String.IsNullOrEmpty(user.UserName) AndAlso _
Not String.IsNullOrEmpty(user.WebSite) AndAlso _
Not String.IsNullOrEmpty(user.Email) AndAlso _
Not String.IsNullOrEmpty(user.About) AndAlso _
Not user.Region Is Nothing AndAlso _
Not user.BirthDate Is Nothing AndAlso _
Not user.isProfileComplete = True Then
user.isProfileComplete = True
user.Reputation = user.Reputation + 10
UserService.UpdateUser(user)
Else
UserService.UpdateUser(user)
End If
UserService.SubmitChanges()
Return RedirectToAction("Details", "Users", New With {.id = id, .slug = user.UserName})
Else
Return View(user)
End If
End Function
서비스
Public Sub UpdateUser(ByVal user As User) Implements IUserService.UpdateUser
_UserRepository.UpdateUser(user)
End Sub
Public Sub SubmitChanges() Implements IUserService.SubmitChanges
_UserRepository.SubmitChanges()
End Sub
저장소
Public Sub UpdateUser(ByVal user As User) Implements IUserRepository.UpdateUser
Dim _user = (From u In dc.Users
Where u.ID = user.ID
Select u).Single
_user = user
End Sub
Public Sub SubmitChanges() Implements IUserRepository.SubmitChanges
dc.SubmitChanges()
End Sub
문제는 업데이트 점점 아니에요 것입니다. 내가 여기서 바보 같은 짓을하고있을거야. 모든 조언을 크게 주시면 감사하겠습니다.
개체를 개별적으로 업데이트 할 수는 있지만 사용자 매개 변수를 데이터 컨텍스트에 연결하는 방법은 무엇입니까? –
With 문은 적절한 방법입니다. 나는 그것을했고 업데이트는 ** isProfileComplete'와 ** 평판 ** 정보가 컨트롤러에서 전달 된 것을 제외하고는 ** 작동한다. 거기에 새로운 사용자 개체를 만들어야합니까? –
isProfileComplete 및 Reputation 속성이 다른 이유를 알지 못합니다. – NerdFury