Linq to Entities - Drill down filter (Asp.net) - PullRequest
3 голосов
/ 18 мая 2011

Я искал хороший способ сделать несколько фильтров "где" для коллекции сущностей из linq.Есть много сайтов, которые используют фильтр для поиска на стороне, например, ebay.

Используемая техника называется фильтром "детализации".Теперь я пытаюсь найти правильный способ реализации этого метода в моей трехуровневой модели, работающей с Linq-to-Entities.

Метод использует ранее использовавшуюся коллекцию полученных сущностей и сужает ее до некоторой степени.фильтра, но есть несколько фильтров, которые могут применяться и удаляться даже в пределах одной и той же «категории» фильтрации.правильный путь.

1 Ответ

0 голосов
/ 21 мая 2011

По моему опыту, каждый "фильтр" на стороне отображается на поле в базе данных.Это упрощает создание фильтра:

var result = db.Table
                 .Where(t => t.Name.Contains(ddlName.Text))
                 .Where(t => t.Attribute1.Contains(Attribute1.Text));
                 .Where(t => t.Attribute2.Contains(Attribute2.Text));

Очевидно, вы можете заменить .Equals() там, где это имеет смысл, я использовал это в нескольких веб-приложениях с большим успехом.Это становится немного сложнее, когда фильтры, которые вы хотите, не отображаются непосредственно на поля в вашей базе данных, но может быть использован аналогичный подход.

...