0
我在編寫LINQ查詢時遇到了問題。 這裏的情景:使用LINQ查詢進行排序問題並使用來自不同數據庫的表進行連接
我有2個數據庫:A和B 在數據庫答:我有一個的TableX它具有以下字段:僱員ID,姓名,地址,電話,...,主動
在數據庫B:我有具有以下字段的tableY:僱員ID,可見,訂單
在數據表Y的記錄數是在表X.小於或等於的記錄數
基本上,我需要從表X中提取具有「可見」屬性的表X中的員工記錄(在表中Y)設置爲True,並希望使用'Order'屬性對它們進行排序。
這是我到目前爲止有:
ADataContext dbA = new ADataContext();
BDataContext dbB = new BDataContext();
//Get the list of records from tableY where 'Visbile' is set to True
var List = dbB.tableY
.Where(x => x.Visible == true).OrderBy(x => x.Order)
.ToList();
//Extract the list of employee IDs
IEnumerable<int> ids = List.Select(x => x.EmployeeID).Distinct();
var employees = dbA.tableX
.Where(x => ids.Contains(x.EmployeeID) && x.Active == true)
.ToList();
我能夠得到員工的正確的列表,但無法弄清楚如何在TableX的 應用排序順序(存在於tableY)目前,無論tableY中指定的順序如何,從tableX返回的記錄按照在表中輸入的順序排序(從最舊到最新)。
任何想法如何我可以修復我的查詢。
感謝,
感謝您的快速回復!我嘗試了你的建議,但是「.OrderBy(x => x.Order)」語句不起作用,因爲「訂單」列沒有在tableX中定義:( – mustang888
我已經更新了上面的示例以使用單個連接。 ,你在TableX的條目中進行選擇,過濾掉所有非活動條目,然後在TableY的條目中進行選擇,並將它們與它們的X對應關係進行匹配,最後,您可以訂購併返回X值。 –