var query = from e in db.Employees
where e.FirstName.Contains("a")
                                            select e;

this works, regarding to string.contains.

Tuna Toksöz
Eternal sunshine of the open source mind.

http://devlicio.us/blogs/tuna_toksoz
http://tunatoksoz.com
http://twitter.com/tehlike




On Mon, Jul 27, 2009 at 10:25 AM, Hendry Luk <hendrym...@gmail.com> wrote:

> I also bumped into this problem (non-case-sensitive String.Contains() is a
> really common requirement), and still looking for a solution for this..
> which apparently still produces the same exception in the recent release of
> NH-Linq. Any idea?
> Thanks
>
>
> On Tue, May 5, 2009 at 1:24 PM, Bryan Murphy <bmurphy1...@gmail.com>wrote:
>
>>
>> We're using Postgres and NHibernate 1.2, but are planning a migration
>> to 2.0.x or 2.1.x soon.  In one of my experiments, I'm trying to get a
>> query to use the following index:
>>
>> CREATE INDEX users__index__username ON users(LOWER(username));
>>
>> We haven't had any problems using these indexes with HQL, but we're
>> experimenting with Linq 2 SQL.  I can't figure out how to get
>> NHibernate to call the database LOWER() function when writing a Linq
>> query.  Am I missing something?
>>
>> The query looks like this:
>>
>> from u in session.Linq<User>()
>> where u.EmailAddress.ToLower() == this.EmailAddress.ToLower()
>> select u;
>>
>> And the exception I'm getting (v2.1.0alpha2) is:
>>
>> Unhandled Exception: System.ArgumentOutOfRangeException: Index was out
>> of range. Must be non-negative and less than the size of the
>> collection.
>> Parameter name: index
>>   at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument
>> argument, ExceptionResource resource)
>>   at System.ThrowHelper.ThrowArgumentOutOfRangeException()
>>   at System.SZArrayHelper.get_Item[T](Int32 index)
>>   at System.Collections.ObjectModel.ReadOnlyCollection`1.get_Item(Int32
>> index)
>>   at
>> NHibernate.Linq.Visitors.EntityExpressionVisitor.VisitMethodCall(MethodCallExpression
>> expr)
>>   at NHibernate.Linq.Visitors.ExpressionVisitor.Visit(Expression exp)
>>   at NHibernate.Linq.Visitors.NHibernateExpressionVisitor.Visit(Expression
>> exp)
>>   at
>> NHibernate.Linq.Visitors.EntityExpressionVisitor.FindEntity(Expression
>> expr, Boolean findFirst)
>>   at
>> NHibernate.Linq.Visitors.EntityExpressionVisitor.RootEntity(Expression
>> expr)
>>   at
>> NHibernate.Linq.Visitors.BinaryCriterionVisitor.VisitMethodCall(MethodCallExpression
>> expr)
>>   at NHibernate.Linq.Visitors.ExpressionVisitor.Visit(Expression exp)
>>   at NHibernate.Linq.Visitors.NHibernateExpressionVisitor.Visit(Expression
>> exp)
>>   at
>> NHibernate.Linq.Visitors.BinaryCriterionVisitor.GetBinaryCriteria(ICriteria
>> rootCriteria, ISession session, BinaryExpression expr,
>> ComparePropToValue comp
>> arePropToValue, ComparePropToProp comparePropToProp,
>> CompareValueToCriteria compareValueToCriteria, ComparePropToCriteria
>> comparePropToCriteria)
>>   at
>> NHibernate.Linq.Visitors.WhereArgumentsVisitor.VisitBinaryCriterionExpression(BinaryExpression
>> expr)
>>   at
>> NHibernate.Linq.Visitors.WhereArgumentsVisitor.VisitBinary(BinaryExpression
>> expr)
>>   at NHibernate.Linq.Visitors.ExpressionVisitor.Visit(Expression exp)
>>   at NHibernate.Linq.Visitors.NHibernateExpressionVisitor.Visit(Expression
>> exp)
>>   at
>> NHibernate.Linq.Visitors.ExpressionVisitor.VisitLambda(LambdaExpression
>> lambda)
>>   at NHibernate.Linq.Visitors.ExpressionVisitor.Visit(Expression exp)
>>   at NHibernate.Linq.Visitors.NHibernateExpressionVisitor.Visit(Expression
>> exp)
>>   at
>> NHibernate.Linq.Visitors.WhereArgumentsVisitor.VisitUnary(UnaryExpression
>> expr)
>>   at NHibernate.Linq.Visitors.ExpressionVisitor.Visit(Expression exp)
>>   at NHibernate.Linq.Visitors.NHibernateExpressionVisitor.Visit(Expression
>> exp)
>>   at NHibernate.Linq.Visitors.WhereArgumentsVisitor.GetCriterion(ICriteria
>> rootCriteria, ISession session, Expression expression)
>>   at
>> NHibernate.Linq.Visitors.RootVisitor.HandleWhereCall(MethodCallExpression
>> call)
>>   at
>> NHibernate.Linq.Visitors.RootVisitor.VisitMethodCall(MethodCallExpression
>> expr)
>>   at NHibernate.Linq.Visitors.ExpressionVisitor.Visit(Expression exp)
>>   at NHibernate.Linq.Visitors.NHibernateExpressionVisitor.Visit(Expression
>> exp)
>>   at
>> NHibernate.Linq.Visitors.NHibernateQueryTranslator.Translate(Expression
>> expression, QueryOptions queryOptions)
>>   at NHibernate.Linq.NHibernateQueryProvider.Execute(Expression
>> expression)
>>   at
>> NHibernate.Linq.Query`1.System.Collections.IEnumerable.GetEnumerator()
>>
>> Thanks,
>> Bryan
>>
>>
>>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to nhusers@googlegroups.com
To unsubscribe from this group, send email to 
nhusers+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to