【发布时间】:2009-03-04 17:10:02
【问题描述】:
我有这个 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() 或全文搜索。它们与Projects 表在同一个.dbml 文件中。
所以现在我有:
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
我的问题是,如何在原始查询 p 上使用这些新的 objDBContexts?我也有兴趣弄清楚如何将 executequery() 映射回原始查询。
类似:
query = from p in query
from d in dateQuery
from f in ftsQuery
where d.ISDATE(p.Field1) && f.FullContextSearch(searchString)
select p;
我希望这是有道理的。我遇到了一些类型不匹配的错误,并尝试用谷歌搜索了一段时间,但找不到任何东西。
【问题讨论】:
标签: c# .net asp.net linq linq-to-sql