QueryBuilder определяется в Microsoft.Windows.Data.DomainServices.
Он позволяет вам создать запрос к коллекции типа T и применить его позже.
Когда мне нужно объединить, где запросы по && это легко, например, вы можете сделать
var query = new QueryBuilder<Customer>();
if (!string.IsNullOrEmpty(this.CustomerFirstName))
query = query.Where(c => c.FirstName == this.CustomerFirstName);
if (!string.IsNullOrEmpty(this.CustomerLastName))
query = query.Where(c => c.LastName == this.CustomerLastName);
if (!string.IsNullOrEmpty(this.CustomerPhone))
query = query.Where(c => c.Phone == this.CustomerPhone);
if (!string.IsNullOrEmpty(this.CustomerMail))
query = query.Where(c => c.Mail == this.CustomerMail);
Я не могу выяснить, как мне объединить те запросы Where по || (Или) ??
У меня есть запрос, который загружает все товары в базу данных, поскольку товары организованы по категориям, и пользователь может выбрать только поднабор категорий (тот, который ему интересен)
Я хотел бы загружать только товары в категориях, которые указал пользователь
Я знаю, что могу сделать это, объединяя Where () по &&, где я исключаю невыбранные категории
пример
query.Where(c => c.CategoryName != "MyCategory");
но мне это не нравится.
Я хотел бы сделать это в цикле foreach
private void LoadProducts()
{
var query = new QueryBuilder<Product>();
//Get Only Products in specified categories
if (!string.IsNullOrEmpty(WebContext.Current.User.SelectedCategoriesCSV))
{
foreach (string cat in WebContext.Current.User.SelectedCategoriesCSV.Split(';'))
{
????//query.Where(c => c.CategoryName == cat || );
}
}
.....