Это псевдо-SQL, который я хочу сгенерировать:
SELECT * FROM Table WHERE Column1 = @Value1 OR Column2 = @Value2
Проблема в том, что иногда не следует включать второй.Я надеялся связать вместе .Where()
предложения, например, так:
var query = context.TableName;
query = query.Where(t => t.Column1 == value1);
if (NeedsToBeIncluded(value2))
query = query.Where(t => t.Column2 == value2);
К сожалению, это не работает..Where()
будет выдавать AND
, если вы объедините их по умолчанию.Есть ли способ заставить его испускать OR
?
Я ищу что-то вроде:
var query = context.TableName;
query = query.Where(t => t.Column1 == value1);
if (NeedsToBeIncluded(value2))
query = query.OrWhere(t => t.Column2 == value2);
ОБНОВЛЕНИЕ Хорошо, такМой пример, приведенный выше, слишком прост.Предполагалось, что это просто пример, который очерчивает проблемное пространство.Так сказать, «в дикой природе», Column1 и Column2 могут быть «CarType» и «OwnerName», может быть, есть больше, может быть, меньше.Я просто использовал простой пример, чтобы обрисовать проблему, потому что я пытаюсь решить целый ряд проблем домена с помощью этой цепочки - .Where()
s вместе.