No, it's possible to create custom SQL with it as well, since you can register custom functions. Not sure about this particular syntax though.
/g > On 5 jun 2014, at 20:54, Ricardo Peres <[email protected]> wrote: > > AFAIK, this method only works for translating custom extensions into HQL. > Since HQL does not support MATCH...AGAINST, there's nothing you can do. > One possible alternative could possibly be writing a custom function in MySQL > that would wrap MATCH...AGAINST and calling it from LINQ. That is possible. > > RP > > >> On Thursday, June 5, 2014 8:41:49 AM UTC+1, Joel Hervén wrote: >> I´ve tried to write a LINQ extension that executes the MySQL function >> MATCH(...,...) AGAINST(...). But I have not been able to translate it into >> appropriate HQL because of the "two functions" syntax. >> >> To have something to look at I wrote this method >> >> public override HqlTreeNode BuildHql(MethodInfo method, Expression >> targetObject, ReadOnlyCollection<Expression> arguments, HqlTreeBuilder >> treeBuilder, IHqlExpressionVisitor visitor) >> { >> var e1 = treeBuilder.MethodCall("MATCH", new[] >> { >> visitor.Visit(arguments[0]).AsExpression(), >> }); >> >> var e2 = treeBuilder.MethodCall("AGAINST", new[] >> { >> visitor.Visit(arguments[1]).AsExpression(), >> }); >> >> return >> treeBuilder.Equality(e1, e2); >> } >> >> The Equality method is obviously not the correct thing here but it will >> generate the SQL "MATCH(....)+AGAINST(....)" which is very close to correct >> except the + sign that shouldn´t be there. I have looked at the >> HqlTreeBuilder many times but I can´t find a working method to just add up >> the methods like needed here. >> >> So next thing was to look at the HqlTreeBuilder and try to extend with an >> alternative >> >> public class HqlDoubleMethod : HqlBooleanExpression >> { >> public HqlDoubleMethod(IASTFactory factory, HqlExpression lhs, >> HqlExpression rhs) >> : base(0, "", factory, lhs, rhs) >> { >> } >> } >> >> Calling this method instead of Equality results in a >> RewriteEmptyStreamException rule b >> >> >> Is it possible to implement this kind of function without modifying the >> Nhibernate-core? > > -- > You received this message because you are subscribed to the Google Groups > "nhusers" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/nhusers. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "nhusers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/nhusers. For more options, visit https://groups.google.com/d/optout.
