我正在寫時間表應用程序(Silverlight),我完全停留在獲取linq查詢工作。我是LINQ的網絡工程師,我只是讀了一些Linq書籍,包括Linq to Objects,linq to SQl和linq to Entities。(我假設,但我不能100%確定後者是Lightswitch使用)。我計劃研究更多的Linq,但只需要讓這個查詢工作。Lightswitch 2013 Linq查詢獲取最小值
所以我有一個名爲項目的實體,其中列出作業中的每一個項目,它的序列號
所以:Job.ID INT,ID INT,長期的SerialNo
我也有一個時間表實體包含轉移日期,工作沒有開始和結束序列號產生
所以Job.ID INT,ShiftDate日期,移INT,StartNo長,EndNo長
當用戶從自動完成框中選擇一個工作,我想爲此查找MAX(SerialNo)在時間表實體中工作。如果這是空的(即沒有產生),我想從項目實體查找該作業的MIN(SerialNo)(即,它們應該產生的第一個序列號是什麼)
我意識到我需要第一個或默認並且需要指定項目中的MIN(SerialNo)作爲默認值。
我的時間表屏幕採用TimesheetProperty,因爲它的數據源
我嘗試以下只是爲了讓從時間表實體MAX(的SerialNo):
var maxSerialNo =
(from ts in this.DataWorkspace.SQLData.Timesheets
where ts.Job.ID == this.TimesheetProperty.Job.ID
select ts.StartNo).Min();
,但我得到了以下錯誤:
實例參數:無法從「Microsoft.LightSwitch.IDataServiceQueryable」轉換爲「System.Collections.Generic.IEnumerable
'Microsoft.LightSwitch.IDataServiceQueryable'不包含'Min'的定義,並且最佳擴展方法重載'System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable)'有一些無效參數
I也不知道爲什麼我不能用這個:
var maxSerialNo = this.DataWorkspace.SQLData.Timesheets.Min(ts => ts.StartNo);
任何人都可以點我在正確的方向?
感謝
馬克