В дополнение к ответу @ Fredrik, вы также можете использовать правила короткого замыкания при оценке логических выражений, например, так:
var test = from p in _db.test
where str1 == null || p.test == str1;
Редактировать Если у вас есть много строк для проверки, (str1
, str2
и т. Д.), Затем вы можете использовать следующее, которое будет переведено в предложение SQL IN
:
var strings = new List<string>();
if (str1 != null) strings.Add(str1);
if (str2 != null) strings.Add(str2);
if (str3 != null) strings.Add(str3);
...
var test = from p in _db.test
where strings.Contains(p.test);
Еще проще, если ваши строкиуже в коллекции (которая, если у вас есть 14 из них, я предполагаю, что они будут ...)