2012-01-24 3 views
1

데이터베이스에서 정보를 가져와 목록으로 변환하고 CustomerList를 반환하려고합니다. 이 첫 번째 비트는 정상적으로 작동합니다. 두 번째 예제는 필드가 내 데이터베이스에서 오는 것을 제외하고는 동일한 작업을 수행하려고합니다. 내가하고있는 일에 무엇이 잘못되었으며 어떻게이 일을 할 수 있습니까? 두 번째 코드는 프로젝트의 다른 곳에서 작동하지만 여기서는 작동하지 않습니다.내 메서드에서 목록을 반환하도록 도와주세요.

private SchoolIn.Models.CustomerList CreateCustomerList() 
{ 
    return new SchoolIn.Models.CustomerList() 
    { 
     new SchoolIn.Models.Customer { Id = 1, Name  = "Patrick", Address = "Geuzenstraat 29", Place = "Amsterdam" }, 
     new SchoolIn.Models.Customer{ Id = 2, Name = "Fred", Address = "Flink 9a", Place = "Rotterdam" }, 
     new SchoolIn.Models.Customer { Id = 3, Name = "Sjonnie", Address = "Paternatenplaats 44", Place = "Enkhuizen" }, 
     new SchoolIn.Models.Customer { Id = 4, Name = "Henk", Address = "Wakerdijk 74", Place = "Utrecht" }, 
     new SchoolIn.Models.Customer { Id = 5, Name = "Klaas", Address = "Paternatenplaats 44", Place = "Plaantan" } 
    }; 
} 

private SchoolIn.Models.CustomerList CreateCustomerList() 
{ 
    return new SchoolIn.Models.CustomerList() 
    { 
     SchoolInDB db = new SchoolIn.Models.SchoolInDB(); 
     var courseprogresses = db.CourseProgresses.Include(c => c.Course).Include(c => c.Teacher); 
     return View(courseprogresses.ToList()); 
    }; 
} 
+0

지금 예약하세요! #enkhuizen – moffeltje

답변

1

첫 번째 사항은 두 번째 코드가 잘못되었습니다. C#. 그래서 이벤트가 컴파일되지 않는다고 가정합니다. 객체 초기화 구문에서는 이러한 표현식을 사용할 수 없습니다. ASP.NET MVC에 들어가기 전에 C#을 배우십시오.

다른 문제는 메서드가 비공개이며 컨트롤러 동작에서 수행하는 작업 인 View를 반환하려고 시도하는 것입니다. 뷰 메소드는 ActionResult를 리턴하고 메소드 리턴 유형은 다시 한번 잘못된 SchoolIn.Models.CustomerList입니다.

그래서 당신은 당신의 데이터베이스 액세스 컨텍스트를 인스턴스화하고 쿼리를 수행하고 디스플레이에 해당하는 모델을 뷰에 반환 어떤 컨트롤러 액션에이 이동 : 당신이이 점을 계속하기를 원한다면

public class HomeController: Controller 
{ 
    ... 

    public ActionResult CreateCustomerList() 
    { 
     SchoolInDB db = new SchoolIn.Models.SchoolInDB(); 
     var courseprogresses = db 
      .CourseProgresses 
      .Include(c => c.Course) 
      .Include(c => c.Teacher) 
      .ToList(); 
     return View(courseprogresses); 
    } 
} 

및 별도의 방법 : 두 번째 함수 당신이 목록을 반환하지 않는 동안

private List<SchoolIn.Models.CourseProgress> CreateCustomerList() 
{ 
    SchoolInDB db = new SchoolIn.Models.SchoolInDB(); 
    return db 
     .CourseProgresses 
     .Include(c => c.Course) 
     .Include(c => c.Teacher) 
     .ToList(); 
} 
+0

코드가 작동하는 것처럼 보이지만 오류 메시지가 나타납니다. private List CreateCustomerList() { SchoolInDB db = new SchoolInDB(); { 복귀 DB .CourseProgresses .Include (c => c.Course) .Include (c => c.Teacher) .ToList(); http://meta.stackexchange.com/questions/5234/how-does-accepting :이 게시물에 당신이 당신이 대답으로 표시 고려해야 가지고 있던 문제를 해결 도움이 경우, – CloudyKooper

+0

감사합니다 -an-answer-work 옆에있는 체크 표시를 클릭하십시오. – CloudyKooper

+0

@CloudyKooper 근무 } –

1

첫 번째 기능에서 당신 대신 당신이 목록으로 모델과 뷰를 반환 한 실제 목록을 반환합니다. 그래서 그것을 위해 당신은 View Result를 돌려 줄 필요가 있습니다. ActionResult.

희망 하시겠습니까?

+0

이제 변환 오류 메시지가 나타납니다. 다음 오류 메시지가있다 : ' System.Collections.Generic.List'\t 암시 ' System.Collections.Generic.List'로 형식을 변환 할 수 없습니다 여기 코드는 그 ToList()를 제외하고 작동합니다. 개인 목록 CreateCustomerList() { SchoolInDB db = 새 SchoolInDB(); 복귀 DB .CourseProgresses .Include (c => c.Course) .Include (c => c.Teacher) .ToList(); } – CloudyKooper

+1

반환 유형을 확인하십시오. 과정 진행 유형 목록 및 메소드 ID 유형 목록의 반환 유형입니다. 고객 목록 유형 모두이 둘은 동일해야합니다. –

관련 문제