Использование списка в качестве условия для запроса LINQ to SQL - PullRequest
2 голосов
/ 22 декабря 2010

У меня есть запрос LINQ to SQL, который выглядит следующим образом:

String NameCondition = "Test";
String EmailCondition = "test@test.com";

IQueryable<User> Users = Repository.Where(x => x.Name.Equals(NameCondition) && x.Email.Equals(EmailCondition));

Но теперь у меня есть список условий, из которых я хотел бы получить пользователей, если они соответствуют любому из них (например, ORутверждение в SQL).Итак, у меня есть список словарей, и каждый словарь представляет собой условие с именем и адресом электронной почты:

List<Dictionary<String, String>> Conditions;

Как я могу выполнить запрос LINQ to SQL, используя эти условия?

Ответы [ 2 ]

0 голосов
/ 22 декабря 2010

Вместо словаря используйте List<KeyValuePair<string, string>> в .NET 3.5 и List<Tuple<string, string>> в .NET 4.0.

См. Что-то похожее вопрос

0 голосов
/ 22 декабря 2010

Использование PredicateBuilder от Josef Albahari

http://www.albahari.com/nutshell/predicatebuilder.aspx

Вот пример использования.

IQueryable<Product> SearchProducts (params string[] keywords)
{
  var predicate = PredicateBuilder.False<Product>();

  foreach (string keyword in keywords)
  {
    string temp = keyword;
    predicate = predicate.Or (p => p.Description.Contains (temp));
  }
  return dataContext.Products.Where (predicate);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...