[c#] System.Collections.Generic.IEnumerable ‘에’ToList ‘에 대한 정의가 없습니다.

여기에 문제가 있습니다. ViewPage에서 IEnumerable을 얻고 있으며 List를 변환하려고 할 때 다음과 같은 오류가 표시됩니다.

System.Collections.Generic.IEnumerable<Pax_Detail>‘에 ‘ToList’에 대한 정의가 포함되어 있지 않으며 ‘ System.Collections.Generic.IEnumerable<Pax_Detail>‘ 유형의 첫 번째 인수를 허용하는 확장 메서드 ‘ToList’를 찾을 수 없습니다 (using 지시문 또는 어셈블리 참조가 누락 되었습니까?).

내 컨트롤러 코드는 다음과 같습니다.

[HttpPost]
public ActionResult Edit_Booking(Booking model, IEnumerable<Pax_Detail> pax)
{
  List<Pax_Detail> paxList = new List<Pax_Detail>();
  paxList = pax.ToList(); //getting error here
  BookingDL.Update_Booking(model, paxList);
  return View();
}

다른 컨트롤러에 동일한 논리를 적용했습니다. 그리고 그것은 잘 작동합니다. 나는 그것이 어떤 문제를 가지고 있는지 모른다. 나는 이미 프로젝트를 청소하고 다시 빌드하고 랩톱을 다시 시작했습니다 (필요했지만).



답변

에 대한 using 지시문이 누락 System.Linq되었습니까?

http://msdn.microsoft.com/en-us/library/bb342261.aspx


답변

System.Linq에 대한 참조가 없습니다.

더하다

using System.Linq

현재 코드 파일에서 ToList () 함수에 액세스하려면


이것이 왜 필요한지에 대한 약간의 정보를 제공하는 Enumerable.ToList<TSource>것은 확장 방법입니다. 확장 메서드는 대상이되는 원래 클래스 외부에서 정의됩니다. 이 경우 확장 메서드는 System.Linq네임 스페이스에 정의됩니다 .


답변

LINQ를 추가하는 대안은 다음 코드를 대신 사용하는 것입니다.

List<Pax_Detail> paxList = new List<Pax_Detail>(pax);


답변

System.Data.Entity dll 참조가 누락되었고 문제가 해결되었습니다.


답변

제 경우에는 Automapper를 사용하는 다른 프로젝트에서 일부 코드를 복사했습니다. 프로젝트에 automapper nuget 패키지를 추가하기 만하면됩니다.


답변