0

저는 ASP.NET MVC에서 처음 경험을했으며 몇 가지 기사를 읽은 후에 MVC로 새 프로젝트를 시작하기로 결정했습니다.ASP.NET MVC의 다중 데이터베이스

그리고 ADO.net 엔티티 데이터 모델을 사용하고 만들기/삭제/세부 정보/편집/색인을 만들었습니다. 그것은 잘 작동합니다. 일부 필드는 HR 데이터베이스와 같은 다른 데이터베이스에서 제공되기 때문에 사용자 인터페이스를 향상시킬 계획입니다. 직원 정보입니다.

예를 들어 내 양식에서 직원 이름을 선택하려면 DropDownList를 사용해야하며 그 데이터는 위에서 언급 한 것처럼 다른 데이터베이스 인 HR에서 가져옵니다. 한 모델에서 차이 데이터베이스에 액세스하는 방법을 모르겠다. 여기에 물었다. How to solve multiple databases in one edmx for ASP.net MVC?

그러나 다른 데이터베이스에 대해 하나 이상의 모델을 만들고 Linq와 결합하려고 시도했습니다.

// 
    // GET: /ARS/ 

    public ActionResult Index() 
    { 
     var employee = new List<EMPLOYEE>(chr.EMPLOYEEs); 
     var reqform = new List<RequestForm>(ars.RequestForms.Include(r => r.Genre)); 

     var requestforms = from r in reqform 
          join e in employee on r.PrjDeptMgr equals e.EmployeeID 
          select new 
          { 
           r.FormID, 
           r.GenreID, 
           r.JobNo, 
           r.Description, 
           r.StartDate, 
           r.EndDate, 
           r.PrjDeptMgr, 
           r.IsAgreed, 
           r.Genre 
          }; 

     //var requestforms = ars.RequestForms.Include(r => r.Genre); 
     return View(requestforms.ToList()); 
    } 

하지만 사전에 전달 모델 항목 유형 'System.Collections.Generic.List 1[<>f__AnonymousType2 9 [선택 System.Int32, 선택 System.Int32, 선택 System.String입니다

이 오류가 발생했습니다 System.String, System.String, System.Boolean, Access_Request_System.Models.Genre]] '이 사전에는'System.Collections.Generic.IEnumerable`1 유형의 모델 항목이 필요합니다. [System.Collections.Generic.IEnumerable`1 [System.String, System.DateTime, System.DateTime, Access_Request_System.Models.RequestForm] '으로 설정하십시오.

정말이 경우에 대한 아이디어가 없습니다 ... 제발!

답변

1

보기 파일에 IEnumerable<RequestForm>이 필요하지만 전달하는 유형이 필수 유형 (예 :)과 일치하지 않습니다.

다음 변경을 시도하십시오.

List<RequestForm> requestforms = (from r in reqform 
         join e in employee on r.PrjDeptMgr equals e.EmployeeID 
         select new RequestForm 
         { 
          FormID = r.FormID, 
          Genre = r.GenreID, 
          JobNo = r.JobNo, 
          Description = r.Description, 
          StartDate = r.StartDate, 
          EndDate = r.EndDate, 
          PrjDeptMgr = r.PrjDeptMgr, 
          IsAgreed = r.IsAgreed, 
          Genre = r.Genre 
         }).ToList(); 

return View(requestForms); 
+0

그래서 내가 ViewModel을 사용해야한다는 뜻입니까? 그렇다면 EditTemplate에서 드롭 다운 목록을 어떻게 사용합니까? 예 : PrdDeptMgr에 ddl을 사용하고 다른 데이터베이스 형태로 바인드 그리고 감사합니다 ... – CMMaung

+0

' 보기()'는 귀하의보기 모델입니다. 뷰 파일에 지정된 뷰 모델 유형이 OK입니다. 그것은 당신이 넘겨 준 값 ('List ')이 틀 렸습니다. 드롭 다운 목록은 어떻게 든 채워 져야합니다 (이는 당신에게 달렸습니다). 나는 드롭 다운리스트 AFAIK를 지원하는 편집 템플릿에 대해 알지 못합니다. –

+0

답변 해 주셔서 감사합니다. :) – CMMaung