MVC 3 및 Entity Framework 4.1로 사이트를 개발 중입니다. MVC 3 Entity Framework를 사용한 개발에 익숙하지 않아 일부 디자인 결정에 도움이되기를 바랍니다. 내 사이트에는 사용자가 갈 수있는 약 15 페이지 밖에 없습니다. 각 페이지에 대한 컨트롤러를 갖기보다는 하나의 컨트롤러 클래스 만 가지려고합니다. (그러나 각 페이지에 대한 모델을 가지고 있습니다.) 컨트롤러 클래스에서는 각 페이지의 영역을 확장하여 쉽게 확장 할 수 있습니다. 그래서 예를 들어, RedirectToAction Homepage가있는 SiteController에 LogOn Method를 갖게 될 것이고 Hompage() Method가 HomePage 영역의 SiteController에 살게 될 것입니다.엔티티 프레임 워크 디자인을 사용하는 ASP.NET MVC 3
동료로부터 설계된 데이터베이스가 이미 있습니다. (데이터베이스에 약 12 개 정도의 테이블이 있습니다) - Entity Framework에서 코드를 작성하는 방법을 살펴 보았습니다. 그러나이 코드를 다음과 같이 유지하는 것이 좋습니다. DAL 폴더가 있고 각 페이지마다 내 모델이 있습니까? 그래서 예를 들면 - 데이터베이스에 저장 될 FileName이 있습니다. 내 홈페이지에서 FileName을 보여주고 싶습니다. 그래서 Homepage Model에서 문자열 FileName을 가지고 HomePage()보기 메소드에서 model.FileName을 db.context (db에서 파일 이름 가져 오기)로 설정하는 것이 좋습니다.
내 SiteController의 instanstiation 포인트에있는 모든 db 컨텍스트를 가장 잘 나타내야할까요, 아니면 그냥 그들을 필요로하는 메소드에 instansiate할까요? 즉, Homepage View에 테이블 1과 테이블 2가 필요하고 Hompage() 메소드에서 새로운 테이블이 필요하고 다른 뷰 메소드가 데이터를 필요로하거나 테이블 3/4에 데이터를 저장해야한다면 해당 메소드의 시작에서 새로 추가해야합니까?
Adam - 의견을 보내 주셔서 감사합니다. 내가 선택한 사이트가 마법사 유형 데이터 항목 (예 : 이동하는 사이트의 각 페이지가 서로 관련되어 있음) 때문에 One Controller로갔습니다. In 메뉴에서 사용자는보고 및 관리자를 선택할 수 있습니다 - 나는 그들을 위해 별도의 컨트롤러를 만들 것이라고 생각합니다. –
또한 각 페이지에 대해 하나의 모델을 사용하기로 결정했습니다. 내 페이지가 둘 이상의 DB 테이블의 데이터를 표시 할 수 있기 때문입니다. 그래서 예를 들어 - 파일 세부 정보 db 테이블, 연락처 db 테이블 및 회사 db 테이블의 데이터를 표시해야하는 페이지에서. 그래서 나는 내 모델에 그것들을 만들어서 Linq 질의를하고 내가 필요로하는 것을 돌려 줄 수있다. –
나는 항상 ViewModels을 권하고있다. –