Check
http://fabiomaulo.blogspot.com/2010/07/nhibernate-linq-provider-extension.html
.
You can extend the Linq Provider to translate the class to
String.Compare in a HqlNode.
Here is a similar class for Int32.Compare:
public class Int32LinqGenerator : BaseHqlGeneratorForMethod
{
public Int32LinqGenerator()
{
SupportedMethods = new[]
{ ReflectionHelper.GetMethodDefinition<Int32>(x =>
x.CompareTo(Int32.MinValue)) };
}
public override NHibernate.Hql.Ast.HqlTreeNode
BuildHql(System.Reflection.MethodInfo method,
System.Linq.Expressions.Expression targetObject,
System.Collections.ObjectModel.ReadOnlyCollection<System.Linq.Expressions.Expression>
arguments,
NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder,
NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor)
{
HqlExpression nodeTarget =
visitor.Visit(targetObject).AsExpression();
return treeBuilder.Subtract(
nodeTarget,
visitor.Visit(arguments[0]).AsExpression()
);
}
}
Andrei
On Jun 10, 12:54 pm, mynkow <[email protected]> wrote:
> you cannot do this. I also want to use string.Compare() but it is not
> possible for now.
--
You received this message because you are subscribed to the Google Groups
"nhusers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/nhusers?hl=en.