Я хочу ограничить количество дочерних элементов, которые я получаю обратно. В этом примере Order.CustomerID "VINET" имеет 3 детали заказа. Я хочу видеть только запись с ценой за единицу 14. Я НЕ хочу видеть детали заказа, где цена за единицу равна 9,8 или 43,8
.
В конце я хочу сделать это в динамическом запросе или с предикатом, но простой пример должен показать мою проблему. Я попробовал это несколькими способами, включая два, которые я показал ниже. Я понимаю, что проблема в том, что LINQ автоматически выполняет свои собственные запросы при расширении, но есть ли у кого-нибудь хорошее решение?
private void btnJoinProblem_Click(object sender, EventArgs e)
{
NorthwindDataContext db = new NorthwindDataContext();
var tempQ2 = (from od in db.Order_Details
join o in db.Orders on od.OrderID equals o.OrderID
where od.UnitPrice == 14
select o).Distinct();
}
Также возвращает слишком много подзаписей на уровне детализации заказа
NorthwindDataContext db = new NorthwindDataContext();
var tempQ = from o in db.Orders
where o.Order_Details.Any(od => od.UnitPrice == 14)
select o;
var bindingSource = new BindingSource();
bindingSource.DataSource = tempQ;
ultraGrid1.DataSource = bindingSource;