2 つの異なるテーブルから連絡先を結合し、重複を削除し、日付で注文するエンティティ フレームワークを介してクエリを作成したいと思います。私が抱えている問題は、日付が異なるため、同じ連絡先が一意に表示されることです。個別に日付を含めたくありませんが、後で注文する必要があります。最初に順序付けを行い、日付を削除してから個別に実行することはできません。これは、個別に順序が変更されるためです。組合の後に注文することは保証されないため、組合の前に注文することもできません。
注文にのみ必要な日付以外のすべてのフィールドを区別したいと思います。
理想的には、個別に比較子を渡しますが、EF はこれを SQL に変換できません。
db.Packages.Select(p => new Recent()
{
Name = p.Attention, Address1 = p.Address1, ... , Date = ShippingDate
})
.Concat(db.Letters.Select(l => new Recent()
{
Name = l.AddressedTo, Address1 = p.Address1, ..., Date = MarkedDate
})
.Distinct()
.OrderByDescending(r => r.Date);
またはSQLの問題
SELECT DISTINCT Attention, Address1, ShippingDate
FROM Packages
UNION ALL
SELECT AddressedTo, Address1, MarkedDate
FROM Letters
ORDER BY ShipmentDate DESC