Linq不确定语法是否正确

时间:2013-11-13 10:03:58

标签: sql linq

我的查询下面没有返回任何结果,我认为它与我尝试加入traineeEvent表的方式有关,linq查询有两个命令。我对linq很新,所以请光临我

** DB Edit我发布它与tranineeEvent Date有关,但这当然会覆盖记录,因此不会返回任何内容

新编辑11:30我现在放心了我需要cpdpoints和trainnieevent进入一行,即不要在select new中有两个diff列这是怎么可能的

  var q =  from cpd in pamsEntities.EmployeeCPDs
                     from traineeEvent in pamsEntities.TrainingEventTrainees
                     join Employee e in pamsEntities.Employees on cpd.EmployeeID equals e.emp_no
                     join TrainingEventPart tEventPart in pamsEntities.TrainingEventParts on traineeEvent.TrainingEventPartId equals tEventPart.RecordId
                     where (cpd.EmployeeID == id) && (startDate >= cpd.StartDate && endDate <= cpd.EndDate) &&
                            (traineeEvent.EmployeeId == id)
                            && traineeEvent.StartDate >= startDate
                            && traineeEvent.EndDate <= endDate
                            && (traineeEvent.TraineeStatus == 1 || traineeEvent.TraineeStatus == 2)
                            && (tEventPart.CPDHours > 0 || tEventPart.CPDPoints > 0)
                            && (cpd.CPDHours > 0 || cpd.CPDPoints > 0)
                      orderby cpd.StartDate



                     select new
                        {
                            surname = e.surname,
                            forname1 = e.forename1,
                            forname2 = e.forename2,
                            EmployeeID = cpd.EmployeeID,
                            StartDate = cpd.StartDate,
                            EndDate = cpd.EndDate,
                            CPDHours = cpd.CPDHours,
                            CPDPoints = cpd.CPDPoints,
                            Description = cpd.Description,
                            TrainingStartDate = tEventPart.StartDate,
                            TrainingEndDate = tEventPart.EndDate,
                            TrainingCPDHours = tEventPart.CPDHours,
                            TrainingCPDPoints = tEventPart.CPDPoints,
                            TrainingEventDescription = tEventPart.Description

                        };

Associcated class is

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace DataObjectLibrary.Reports
    {

            public class EmployeeCPDReportRecord
            {
                public EmployeeCPDReportRecord(

                    string employeeName,
                    DateTime startDate,
                    DateTime endDate,
                    decimal cpdHours,
                    decimal cpdPoints,
                    string eventDesc,
                    DateTime trainingstartDate,
                    DateTime trainingEndDate,
                    decimal trainingcpdHours,
                    decimal trainingCpdPoints,
                    string trainingEventDesc,
                    string cpdtype
                    )
                {
                    EmployeeName = employeeName;       
                    StartDate = startDate;
                    EndDate = endDate;
                    CPDHours = cpdHours;
                    CPDPoints = cpdPoints;
                    EventDescription = eventDesc;
                    CpdType = cpdtype;
                    TrainingStartDate = trainingstartDate;
                    TrainingEndDate = trainingEndDate;
                    TrainingCPDHours = trainingCpdPoints;
                    TrainingCPDPoints = trainingCpdPoints;
                    TrainingEventDescription = trainingEventDesc;


                }

                  public DateTime StartDate { get; set; }
                public DateTime EndDate { get; set; }
                public decimal CPDHours { get; set; }
                public decimal CPDPoints { get; set; }
                public string EventDescription { get; set; }
                public string EmployeeName { get; set; }

                public DateTime TrainingStartDate { get; set; }
                public DateTime TrainingEndDate { get; set; }
                public decimal TrainingCPDHours { get; set; }
                public decimal TrainingCPDPoints { get; set; }
                public string TrainingEventDescription { get; set; }
                public string TrainingEmployeeName { get; set; }
                public string CpdType { get; set; }
        }
    }

0 个答案:

没有答案
相关问题