2012-09-03 3 views
0

저는 실제 문제가 있습니다. 그 이유는 충분히 알지 못하기 때문입니다. 나는 약 50 개의 기사를 검색하여 답을 찾을 수 없다. 여기 MVC 3 ViewModel 메서드 모델 만들기

여기
Namespace Models 
    Public Class Article 
     Public Property ArticleId As Integer 
     Public Property Author As String 

     <DisplayFormat(DataFormatString:="{0:D}")> 
     Public Property CreatedOn As DateTime 

     <DisplayFormat(DataFormatString:="{0:D}")> 
     Public Property LastModified As DateTime 

     <AllowHtml()> 
     Public Property Content As String 
     Public Property Title As String 
     Public Property Excerpt As String 
     Public Property IsPublic As Boolean 

     Public Overridable Property Category As ICollection(Of Category) 
     Public Overridable Property Tags As ICollection(Of Tag) 
     Public Overridable Property Status As ICollection(Of Status) 
     Public Overridable Property Comments As ICollection(Of Comment) 
    End Class 
End Namespace 


Namespace Models 
    Public Class Status 
     Public Property StatusId As Integer 
     Public Property Name As String 

     Public Overridable Property Articles As ICollection(Of Article) 
    End Class 
End Namespace 


Namespace Models 
    Public Class Category 
     Public Property CategoryId As Integer 
     Public Property Name As String 

     Public Overridable Property Articles As ICollection(Of Article) 
    End Class 
End Namespace 

Namespace Models 
    Public Class Tag 
     Public Property TagId As Integer 
     Public Property Name As String 

     Public Overridable Property Articles As ICollection(Of Article) 
    End Class 
End Namespace 

내 ViewModel에있다가 (내 도메인 모델을 기반으로) 내 도메인 모델 나는 패턴을 교차 이러한 모든 데이터와 함께 저장하는 방법을 잘 모릅니다

Namespace ViewModels.Admin 
    Public Class ArticleViewModel 
     Public Property Article As Article 
     Public Property CategoryId As Integer 
     Public Property StatusId As Integer 
     Public Property Tags As ICollection(Of Tag) 
    End Class 
End Namespace 

있습니다. 나는 지금 많은 방법을 시도해 보았고 어디를보아야할지 모른다. 나는 몇 권의 책을 시험해 보았지만 아무도 이것을 정말로 파헤 쳤다. 또한 Contoso University 프로젝트를 살펴 보았지만 내 프로젝트처럼 보이지 않습니다. 누구든지 도와 줄 수 있습니까?

+0

에? – smartcaveman

+0

도움이된다면 아래의 내 의견을 참조하십시오. EF 코드 첫 번째 모델을 통해 데이터베이스에 저장하고 있습니다. – Chuck

답변

1

DAL을 수행하기 위해 Entity Framework를 사용하는 경우 매우 쉽게이 작업을 수행 할 수 있습니다. 위에서 아래로 오브젝트를 간단히 빌드하십시오. 따라서 예제에서 ViewModel에서 기사를 가져 와서 View Model의 다른 부분에서 탐색 속성을 채 웁니다.

하위 개체의 탐색 속성 연결을 염려하지 마십시오.

그러면 아티클 컬렉션에서 AddObject를 사용하여이 아티클을 컨텍스트에 추가 할 수 있으며 모든 하위 속성도 삽입하고 연결해야합니다. 이미 DB에있을 수있는 하위 속성에주의, 내가 EF 본

은 ID가 비록 해당 항목에 삽입을하지 않고 바로 매핑 테이블을 업데이트하는 것보다 등 당신이 그들을 저장 원하는 작업

+0

도움을 주셔서 감사합니다! 너 뭔가 비슷한거야? 아니면 더 쉬운 매핑 방법이 있습니까? 의 의미에서 쉽게 나를 위해 적은 작업의 의미하지 쉽게 내가 ModelState.IsValid하면 ... 너무 많은 일을하고 그 다음 희미한 기사 = 새로운 제()와 {_ .Author = "관리자", .Content = viewModel.Content, .IsPublic = 진정한 } db.Articles.Add (기사) db.SaveChanges() 돌아 RedirectToAction 바로 내 보이는 ("인덱스") – Chuck

+0

, 당신은 viewmodel에 어떤 코드를 매핑하지 않고 도망 갈 수 없다. automapper는 이것을 돕기위한 몇 가지 기능을 가지고 있다고 생각하지만, 공정하기 위해서, 나는 당신이 뿐만 아니라 코드를 작성하면됩니다. – Slicksim

+0

"main"기사를 내 viewmodel과 매핑 한 후 Category 및 Status (다른 모델)와 같은 항목이 업데이트되도록하려면 어떻게해야합니까? 지금은 내 주요 기사를 올바르게 저장하지만 다른 속성은 내 조인 테이블에서 업데이트되지 않습니다 ... – Chuck