Linq to SQL / C #: как сделать заказ Используя свойство в таблице перекрестных ссылок с лямбда-выражениями - PullRequest
0 голосов
/ 22 июня 2010

Я пытаюсь заказать список продуктов на основе свойства zindex таблицы перекрестных ссылок с таблицей категорий (в данном случае это называется «Шасси»), но я получаю следующую ошибку:

Невозможно упорядочить по типу 'System.Collections.Generic.IEnumerable`1 [System.Int32]'.

Вот метод, который я использую:

public IQueryable<E_Product> Product_GetList_ByChassisId(int chassisId)
{
    return dc.E_Products
        .Where(x => x.Deleted == false)
        .Where(x => x.Published == true)
        .Where(x => x.E_Product_Chassis
            .Any(c => c.ChassisId == chassisId && c.Deleted == false))
        .OrderBy(x => x.E_Product_Chassis.Select(c => c.Zindex));
}

Я понимаю, что метод .Select возвращает IEnumerable, но, поскольку отношение «многие ко многим», x.E_Product_Chassis не позволяет просто выбирать его свойства (например, x.E_Product_Chassis.Zindex).

Любая помощь будет принята с благодарностью ...

1 Ответ

2 голосов
/ 22 июня 2010

FirstOrDefault (), Min (), Max () - используйте одну из этих функций, чтобы выбрать соответствующий z-индекс из набора.

public IQueryable<E_Product> Product_GetList_ByChassisId(int chassisId) 
{ 
    return dc.E_Products 
        .Where(x => x.Deleted == false) 
        .Where(x => x.Published == true) 
        .Where(x => x.E_Product_Chassis 
            .Any(c => c.ChassisId == chassisId && c.Deleted == false)) 
        .OrderBy(x => x.E_Product_Chassis.Min(c => c.Zindex)); 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...