Как я могу заказать IQueryable на основе поля, которое находится в другой таблице?

#entity-framework #linq

#entity-framework #linq

Вопрос:

Я новичок в LINQ и c# , и у меня есть две таблицы :

Продукты

ProductStoreds

ProductStore имеет ForeignKey для Products с именем поля ProductId (одинаковым для обеих таблиц). У меня есть IQueryable с именем result из Products таблицы. как я могу отсортировать его на основе поля с именем status в ProductStore таблице. это то, что я пробовал, и у меня не получилось:

 result = result.Where(p =>
                p.ProductId == DbContext.ProductStores.Select(m => m.Product)
                .OrderByDescending(m => m.Status).ToInt());
  

Ответ №1:

Вы можете присоединиться и заказать по продукту следующим образом

 var stores = DbContext.ProductStores;
result = from store in stores
        join product in result on product.ProductId equals store.ProductId
        orderby store.Status
        select product;