2009-10-27 34 views
-1

我希望這很容易被發現。 此查詢有一個synatx錯誤;帶有where子句的Linq查詢上的左連接語法錯誤

public static IEnumerable<DailyTimeRecorded> GetPeriodData(
      Employee emp, DateTime startDate, DateTime endDate) 
     { 
      var listDTR = 
       from dow in db.DayOfTheWeeks 
       join dtr in db.DailyTimeRecordeds 
       on dow.DayOfTheWeekId equals dtr.DayOfTheWeekId into sr 
       where dtr.EmployeeId == emp.EmployeeId 
       from x in sr.DefaultIfEmpty() 
       select new 
       { 
        DailyTimeRecordedId = x.DailyTimeRecordedId == null ? -1 : x.DailyTimeRecordedId, 
        DayOfTheWeekId = dow.DayOfTheWeekId, 
        EmployeeId = emp.EmployeeId, 
        MorningTimeIn_HH = x.MorningTimeIn_HH == null ? 0 : x.MorningTimeIn_HH, 
        MorningTimeIn_MM = x.MorningTimeIn_MM == null ? 0 : x.MorningTimeIn_MM 
       }; 
      return listDTR as IEnumerable<DailyTimeRecorded>; 
     } 

語法錯誤在行上; where dtr.EmployeeId == emp.EmployeeId 我得到的錯誤是; 「名稱'dtr'在當前上下文中不存在」

+0

耶穌。換行符? – KristoferA 2009-10-27 09:49:35

回答

1

這是解決方案!

public static IEnumerable<DailyTimeRecorded> GetPeriodData(
      Employee emp, DateTime startDate, DateTime endDate) 
     { 
      var listDTR = 
       from dow in db.DayOfTheWeeks 
       join dtr in db.DailyTimeRecordeds 
       on dow.DayOfTheWeekId equals dtr.DayOfTheWeekId into sr 
       from x in sr.DefaultIfEmpty() 
       where x.EmployeeId == emp.EmployeeId 
       select new 
       { 
        DailyTimeRecordedId = x.DailyTimeRecordedId == null ? -1 : x.DailyTimeRecordedId, 
        DayOfTheWeekId = dow.DayOfTheWeekId, 
        EmployeeId = emp.EmployeeId, 
        MorningTimeIn_HH = x.MorningTimeIn_HH == null ? 0 : x.MorningTimeIn_HH, 
        MorningTimeIn_MM = x.MorningTimeIn_MM == null ? 0 : x.MorningTimeIn_MM 
       }; 
      return listDTR as IEnumerable<DailyTimeRecorded>; 
     }