У меня есть последовательность запросов Linq to SQL, которая в основном возвращает поиск в таблице с именем PROJECTS. и я использую отложенное выполнение, чтобы медленно его наращивать.
var query = from p in objDBContext.PROJECTs
where (p.PROVIDER_ID == cwForm.productForm)
select p;
query = from p in query
where p.SubmittedDate >= cwForm.beginDateForm
select p;
Я написал несколько функций SQL, которые возвращают скалярные и табличные значения в качестве вспомогательной функции, потому что LINQ не поддерживает ISDATE()
или полнотекстовый поиск. они находятся в том же файле .dbml, что и таблица Projects
.
Так что теперь у меня есть:
var dateQuery = from d in objDBContext.ISDATE
select d;
//returns a bool
var ftsQuery = from f in objDBContext.FullTextSearch
select f;
//returns a valued-table with the primary keys of hits with fulltextsearch
Мой вопрос: как мне использовать эти новые objDBContexts в исходном запросе p? Мне также интересно выяснить, как отобразить executequery () обратно в исходный запрос.
Что-то вроде:
query = from p in query
from d in dateQuery
from f in ftsQuery
where d.ISDATE(p.Field1) && f.FullContextSearch(searchString)
select p;
Надеюсь, это имеет смысл. У меня несколько несовпадающих типов ошибок, и я некоторое время пытался поискать в Google, но ничего не смог найти.