sql-server-2008 – 用于SQL Server 2008全文索引’包含’关键字
发布时间:2021-03-05 14:23:59 所属栏目:MsSql教程 来源:网络整理
导读:我认为在实现LinqToHql生成器类时我缺少一些基本的东西. 我已使用此注册使用自定义方言成功注册了SQL Server 2008包含的查询: RegisterFunction("contains",new StandardSQLFunction("contains",null)); 我只有一个类要查询全文索引: public class SearchNa
这是修订版: public static class DialectExtensions { public static bool FullTextContains(this string source,string pattern) { return false; } } public class MyLinqtoHqlGeneratorsRegistry : DefaultLinqToHqlGeneratorsRegistry { public MyLinqtoHqlGeneratorsRegistry() : base() { RegisterGenerator(ReflectionHelper.GetMethod(() => DialectExtensions.FullTextContains(null,new FullTextContainsGenerator()); } } public class FullTextContainsGenerator : BaseHqlGeneratorForMethod { public FullTextContainsGenerator() { SupportedMethods = new[] { ReflectionHelper.GetMethod(() => DialectExtensions.FullTextContains(null,null)) }; } public override HqlTreeNode BuildHql(MethodInfo method,IHqlExpressionVisitor visitor) { HqlExpression[] args = new HqlExpression[2] { visitor.Visit(arguments[0]).AsExpression(),visitor.Visit(arguments[1]).AsExpression() }; return treeBuilder.BooleanMethodCall("contains",args); } } 要使用修订版,语法略有不同: var namesLinq = Session.Query<SearchName>().Where(x => x.Name.FullTextContains("john")).ToList(); (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |