我在编写 LINQ 查询时遇到问题。这是场景:
我有 2 个数据库:A 和 B 在数据库 A 中:我有一个 tableX,其中包含以下字段:员工 ID、姓名、地址、电话、...、活动
在数据库 B 中:我有一个 tableY,其中包含以下字段:Employee ID、Visible、Order
表 Y 中的记录数小于或等于表 X 中的记录数。
基本上,我需要从表 X 中提取属性“可见”(在表 Y 中)设置为 True 并希望使用“订单”属性对它们进行排序的员工记录。
这是我到目前为止所拥有的:
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 返回的记录都会在输入时进行排序在表中(从最旧到最近)。
任何想法如何解决我的查询。
谢谢,