2017-03-08 39 views
1

我正在嘗試編寫一個查詢來收集工作號碼,開始日期,客戶姓名,型號和工作完成日期。爲了得到這個信息,我看了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的最佳方式?

+0

嗨,所以上下文實際上是使用了一個自定義的「風味」,我猜是由公司在我的工作中創建的...不知道我可以給你多少信息。 –

+0

哦,LINQ到實體和'選擇新的CompletedTruck'應該是'選擇新的CompJob',只是爲了防止混淆,我錯過了編輯 –

+0

*我有一個對象來保存每個這些叫做CompJob *那麼爲什麼分組?立即創建'CompJob':'選擇新的CompJob {JobNum = FA.JobNum,...}等 –

回答

0

感謝大家幫助我。我解決了這個問題,這就是我所做的。我遵循了Gert Arnold關於選擇一個新的CompJob對象的建議。這將查詢的每一行設置爲一個新的對象:

select new CompJob {JobNum = FA.JobNum, StartDate = FA.StartDate, Customer = ORD.CUSTOMER_NAME,.....} 

然後說

).ToList(); 

在查詢結束。然後,我將ObservableCollection設置爲由我的查詢返回的列表:

CompJobList = CompletedTrucksQuery ; 

再次感謝您幫助我;我知道我對這一切都很陌生!

相關問題