LINQ クエリの記述に問題があります。シナリオは次のとおりです。
私は 2 つのデータベースを持っています: A と B データベース A: 次のフィールドを持つ tableX があります: 従業員 ID、名前、住所、電話、...、アクティブ
データベース B: 次のフィールドを持つ tableY があります: 従業員 ID、Visible、Order
テーブル Y のレコード数は、テーブル X のレコード数以下です。
基本的に、属性 'Visible' (テーブル Y 内) が True に設定されている従業員レコードをテーブル X から抽出する必要があり、'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 に存在する) 並べ替え順序を適用する方法がわかりませんテーブル内 (最も古いものから最新のものへ)。
クエリを修正する方法についてのアイデア。
ありがとう、