Чтобы ответить на ваш вопрос напрямую,
string.join(" and ",
(new[] { "%bc%", "%def%", "%ab%" })
.Select(x => string.Format("[{0}] LIKE '{1}'",columnName, x))
.ToArray());
Чтобы решить вашу проблему, вы должны использовать средства полнотекстового поиска Sql Server. запрос будет:
select * from table
where FREETEXT("bc def ab")
С правильными индексами это должно превзойти список LIKE