2013-07-01 2 views
0

Я пытаюсь написать запрос LINQ, как показано ниже, в котором я получаю список продуктовсортировки списка и отображение списка в сетке

DBEntities _context = null; 
List<BOMViewModel> lstBOM; 
using (_context = new DBEntities()) 
{ 
    ObjectSet<BOMProduct> objBOMProduct = _context.BOMProducts; 
    ObjectSet<BOMComponent> objBOMComponent = _context.BOMComponents; 
    ObjectSet<Product> objProducts = _context.Products; 
    lstBOM = (from BOMProduct in objBOMProduct 
       join BOMComponent in objBOMComponent on BOMProduct.BOMProductKey equals BOMComponent.BOMProductKey 
       join products in objProducts on BOMComponent.ProductKey equals products.ProductKey 
       where (BOMProduct.LengthKey == 39) 
       select new BOMViewModel 
       { 
         ProductKey = BOMComponent.ProductKey, 
         ProductPN = products.ProductPartNum, 
         ProductDesc = products.ProductDesc, 
         ProductPrice = products.ProductPrice, 
         Quantity = BOMComponent.BOMComponentQuantity 
       }).ToList(); 
} 
return lstBOM; 

Этот список я привязка к сетке и отображение данных в сетке, все работает достаточно хорошо.

В базе данных у меня есть несколько продуктов desc. который содержит «Заголовок». содержит «Hdr». Я хочу показать их сначала из списка, а затем остальное, что нужно показать другим продуктам. вы можете сказать, что я хочу сортировать его по заголовку или «Hdr».

Предположим, у меня есть 25 элементов в списке, в этом 10-значном описании содержится «Заголовок» и 5 имен описания «Hdr», а rest 10 не содержит оба слова. то в grd он должен отображать элементы, которые содержат «Заголовок», затем «hdr», а затем остальные предметы

Как это возможно ??? Пожалуйста, попросите кого-нибудь из опыта.

ответ

0

Я могу думать об одном способе, хотя это может быть не самое лучшее. Вы можете сделать условное утверждение внутри запроса, например,

.OrderBy(x => x.ProductDesc == "Header" ? 1 : x.ProductDesc == "Hdr" ? 2 : 3) 
Смежные вопросы