使用“选择新对象”

时间:2019-11-20 20:02:49

标签: linq

我正在尝试从linq查询中获取对象列表。在我的课下

public partial class FuelBenefit
    {
        public int FuelBenefitId { get; set; }
        public Nullable<int> EmployeeId { get; set; }
        public Nullable<int> VehicleId { get; set; }
        public Nullable<double> QuantityByCicle { get; set; }
        public Nullable<int> UOMId { get; set; }
        public Nullable<System.DateTime> DateStart { get; set; }
        public Nullable<System.DateTime> DateEnd { get; set; }
        public Nullable<bool> Active { get; set; }

public partial class FuelAmountEmployeeCycle
    {
        public int FuelAmountEmployeeCicleId { get; set; }
        public Nullable<int> CycleId { get; set; }
        public Nullable<int> EmployeeId { get; set; }
        public Nullable<double> Amount { get; set; }
        public Nullable<double> Balance { get; set; }
}

和查询。我没有收到错误,但没有结果。

 var y = (from e in db.FuelBenefits
                        where e.Active == true 
                        select new FuelAmountEmployeeCycle
                        {
                            CycleId = 1, 
                            EmployeeId = e.EmployeeId,
                            Amount = e.QuantityByCicle,
                            Balance = e.QuantityByCicle
                        });

当我这样做

var y = (from e in db.FuelBenefits
                            where e.Active == true 
                            select e );

我确实得到了结果。

我有另一个项目可以执行此操作,但不确定为什么这次不起作用。

谢谢!

2 个答案:

答案 0 :(得分:1)

  var y = (from e in db.FuelBenefits
                    where e.Active == true 
                    select new FuelAmountEmployeeCycle
                    {
                        CycleId = 1, 
                        EmployeeId = e.EmployeeId,
                        Amount = e.QuantityByCicle,
                        Balance = e.QuantityByCicle
                    });

直到查询到ToList()代码,该查询才会运行。

您应该这样写:

 var y = (from e in db.FuelBenefits
                    where e.Active == true 
                    select new FuelAmountEmployeeCycle
                    {
                        CycleId = 1, 
                        EmployeeId = e.EmployeeId,
                        Amount = e.QuantityByCicle,
                        Balance = e.QuantityByCicle
                    }).ToList();

答案 1 :(得分:0)

var y = db.FuelBenefits.Where(f => f.Active == true)
                   .Select(f => new FuelAmountEmployeeCycle
                   {
                       CycleId = 1,
                       EmployeeId = f.EmployeeId,
                       Amount = f.QuantityByCicle,
                       Balance = f.QuantityByCicle
                   })
                   .ToList();
相关问题