我通过IQueryable扩展方法在我的应用程序中链接搜索条件,例如:
public static IQueryable<Fish> AtAge (this IQueryable<Fish> fish, Int32 age)
{
return fish.Where(f => f.Age == age);
}
但是,我还有一个全文搜索存储过程:
CREATE PROCEDURE [dbo].[Fishes_FullTextSearch]
@searchtext nvarchar(4000),
@limitcount int
AS
SELECT Fishes.* FROM Fishes
INNER JOIN CONTAINSTABLE(Fishes, *, @searchtext, @limitcount)
AS KEY_TBL ON Fishes.Id = KEY_TBL.[KEY]
ORDER BY KEY_TBL.[Rank]
存储过程显然不会返回IQueryable,但是,是否有可能以某种方式使用IQueryable来限制存储过程的结果集?
我正在设想像.AtAge(5).AboveWeight(100).Fishes_FulltextSearch(“abc”)。
在这种情况下,全文搜索应该在我的Fishes表的较小子集上执行(按年龄和重量缩小)。
这样的事情可能吗?示例代码?
答案 0 :(得分:0)
我认为如果你
可能会有用Fishes_FulltextSearch("abc")
希望这有帮助。
答案 1 :(得分:0)
如果您可以在视图中使用ContainsTable,那么 - 返回IQueryable ......