0

你们中的任何人都可以帮我解决这个问题吗?将“carsList”变量转换为“_vehicleList”时出现此错误

无法将类型为“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)

先感谢您。

4

2 回答 2

0

假设您的车辆实体类未命名为“VehicleDAOModel”,您需要投影 carsListVehicleDAOModel对象列表。

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

我强烈建议为此使用Automapper

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

(假设两个类之间存在 1:1 的属性名称映射。)

于 2012-11-10T15:15:11.060 回答
0

.ToList()就做一个carsList

_vehicleList = carsList.ToList();

该carsList 是一个查询,一旦读取就会被执行。.ToList() 读取完整的查询结果并将其作为List<T>.

但这确实希望查询返回VehicleDAOModels。如果没有,那么您将需要使用 .Select() 并自己进行转换。

于 2012-11-10T14:40:34.300 回答