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(); (バツ)

前もって感謝します。

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>.

しかし、それはクエリが s を返すことを期待していますVehicleDAOModel。そうでない場合は、.Select() を使用して自分で変換する必要があります。

于 2012-11-10T14:40:34.300 に答える