2012-11-10 2 views
0

누구든지 해결할 수 있습니까? 'carsList'변수를 '_vehicleList'에 캐스팅 할 때이 오류가 발생합니다.어떻게 Linq.DataQuery를 Generic.List로 변환하십시오.

'System.Data.Linq.DataQuery'형식의 객체를 캐스팅 할 수 없습니다. 'System.Collections.Generic.List`1 [VehicleDAOModel] '.

Linq.DataQuery가 VehicleDAOModel의 등록 정보와 일치해야합니까?

내 코드 : 다음하지만 작동하지 않았다 시도

public class VehicleDAOModel 
{ 
    [Display(Name = "Id")] 
    public int _Id { get; set; } 

    [Required] 
    [Display(Name = "Year")] 
    public string _year { get; set; } 

    [Required] 
    [Display(Name = "Make")] 
    public string _make { get; set; } 

    [Required] 
    [Display(Name = "Model")] 
    public string _model { get; set; } 

    [Required] 
    [Display(Name = "Trim")] 
    public string _trim { get; set; } 
} 
     // LINQ TO SQL CODE 

     var dataContext = new VehicleModelL2SQLDataContext(); 
     var carsList = from v in dataContext.Vehicles 
         select v; 
     _vehicleList = (List<VehicleDAOModel>)carsList; 

     public List<VehicleDAOModel> _vehicleList = new List<VehicleDAOModel>(); 

: carsList.ToList(); (X) carsList.AsEnumerable(). LoList(); (X)

미리 감사드립니다.

+1

은 우리의 구조를보기 차량. – Adil

답변

0

해당 carsList.ToList()을 입력하십시오.

_vehicleList = carsList.ToList(); 

carsList는 일단 읽으면 실행될 쿼리입니다. .ToList()는 전체 쿼리 결과를 읽고 List<T>으로 반환합니다.

그러나 쿼리에서 VehicleDAOModel을 반환 할 것으로 예상됩니다. 그렇지 않다면 .Select()를 사용하여 직접 변환해야합니다. 차량 엔티티 클래스는 VehicleDAOModel 개체의 목록에 프로젝트carsList 필요 "VehicleDAOModel"라는되지 않는다는 가정

+0

나는 그가'linq' statemenet 앞에'vehicleList'를 선언해야한다고 생각합니다. – Mironline

+0

그는 쿼리에 값을 할당하기 바로 전에 쿼리를 선언 할 필요가 없습니다. 필자는 코드를 실제 행의 샘플로 이해했으며 정확한 순서는 아닙니다. –

+0

감사합니다. 한스. 다음을 시도했지만 작동하지 않았습니다. carsList.ToList(); carsList.AsEnumerable(). LoList(); – user1814616

0

.

_vehicleList = carsList.Select(c => 
        new VehicleDAOModel { 
         Id = c.Id, 
         Year = c.Year, 
         ... 
         }); 

나는 강하게 이것에 대한 Automapper를 사용하는 것이 좋습니다 :

Mapper.Map<Vehicle, VehicleDAOModel>(); 
_vehicleList = carsList.Project.To<VehicleDAOModel>(); 

(1가 있다고 가정하면. 두 클래스 사이에 속성 이름의 1 매핑)

관련 문제