我正在嘗試編寫一個查詢來收集工作號碼,開始日期,客戶姓名,型號和工作完成日期。爲了得到這個信息,我看了3個不同的表格,用連接把它們放在一起。這裏有三個表:在linq中選擇一個沒有分組的新對象?
STAGE - (階段每個作業在生產過程中經歷)
令 - (這是我得到了客戶的名字)
JOBS(開始日期,結束日期,工作號碼,型號)
因此,大部分信息來自JOBS表。但是,我通過作業號(JobNum)加入ORDER表以獲取客戶的姓名。這是查詢的樣子。我創建它在SQL之前,我試圖把它翻譯成我的ViewModels之一:
var CompletedTrucksQuery =
(from FA in context.JOBS
join ORD in context.ORDER on FA.ORGANIZATION_ID equals ORD.ORGANIZATION_ID
where FA.ORDER_NUMBER == ORD.ORDER_NUMBER
join StageF in context.STAGE on FA.JobNum equals StageF.JobNum
where StageF.StageID == 325
join TruckComp in context.STAGE on FA.JobNum equals TruckComp.JobNum
where TruckComp.StageID == 327
join INSP in context.STAGE on FA.JobNum equals INSP.JobNum
where INSP.StageID == 487
orderby StageF.CompDate descending, FA.JobNum ascending
select new {FA.JobNum, FA.StartDate, ORD.CUSTOMER_NAME, FA.MODEL_NAME, StageF.CompDate});
在這一點上,我想選擇
招聘數(從JOBS),
開始日期,(喬布斯),
客戶的名稱(從ORDER),
產品的型號(喬布斯),
以及它在StageF中完成的日期(來自STAGE)
正如您在我的select語句中所看到的那樣。我有一個對象來保存這些叫做CompJob的每一個,並且試圖做一個'group by'並選擇一個新的CompJob並設置屬性,但是我似乎無法將它分組並且得到所有的'訪問權限'我想要設置的屬性。下面是我在談論的摘錄:
group new {FA.JobNum, O = ORD} by StageF into grp
select new CompletedTruck
{
JobNum = grp.Key.JobNum,
StartDate = grp. //???
}
正如你可以告訴我停了下來,因爲某種原因,我不能「發現」的開始日期。我知道這與我的分組有關。一般來說,我對linq和數據庫都很陌生。
我的問題:什麼是我可以選擇感興趣的這些列到我的
ObservableCollection<CompJob> CompJobList;
,這樣我可以在視圖中使用它在我的ScrollViewer的最佳方式?
嗨,所以上下文實際上是使用了一個自定義的「風味」,我猜是由公司在我的工作中創建的...不知道我可以給你多少信息。 –
哦,LINQ到實體和'選擇新的CompletedTruck'應該是'選擇新的CompJob',只是爲了防止混淆,我錯過了編輯 –
*我有一個對象來保存每個這些叫做CompJob *那麼爲什麼分組?立即創建'CompJob':'選擇新的CompJob {JobNum = FA.JobNum,...}等 –