Добавить или условие для сущности в Entity Framework - PullRequest
6 голосов
/ 02 апреля 2010

Можете ли вы добавить условие "Или" для объекта в структуре объекта? Например что-то вроде:

Property1 == (1 или 2 или 3)

Сообщение, которое я получаю при установке значения "1 || 2 || 3" или "1,2,3" или "1 или 2 или 3", возвращает это сообщение:

condition is not compatible with the type of the member

Ответы [ 3 ]

12 голосов
/ 02 апреля 2010

Вам нужно сделать:

var results = entityCollection.Where(entity => entity.Property1 == 1 || entity.Property1 == 2 || entity.Property1 == 3);
10 голосов
/ 03 апреля 2010

Вы также должны проверить построитель предикатов: http://www.albahari.com/nutshell/predicatebuilder.aspx

Это немного сложнее, но если вам нужно динамически связать условия, это ваш лучший выбор.

foreach (string keyword in keywords)
  {
    string temp = keyword;
    predicate = predicate.Or (p => p.Description.Contains (temp));
  }
3 голосов
/ 03 апреля 2010

Не пробовал, но вы можете попробовать contains. Не уверен насчет производительности, но код меньше:

int[] vals = new int[] { 1, 2, 3, 4 };
var results = entityCollection.Where(entity => vals.Contains(entity.Property1));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...