I'm using LINQ to NHibernate and have following query:
internal List<EmployeeInsurance>
SearchEmployeeInsurance(string insuranceNumberSearch, string
insuranceContractSearch)
{
var q = from ei in session.Linq<EmployeeInsurance>()
where
insuranceContractSearch == null ? true :
CommonHelper.IsSame(ei.InsuranceContract, insuranceContractSearch)
select ei;
if (insuranceNumberSearch != null)
q = q.Where(ei =>
ei.InsuranceNumber.Contains(insuranceNumberSearch.Trim()));
if (insuranceContractSearch != null)
q = q.Where(ei => ei.InsuranceContract.ID.ToString()
== insuranceContractSearch);
return q.ToList<EmployeeInsurance>();
}
but when "insuranceContractSearch" is not null, I got
"System.ArgumentOutOfRangeException: Index was out of range. Must be
non-negative and less than the size of the collection.
Parameter name: index" error.
What is wrong?
complete stack trace is:
[ArgumentOutOfRangeException: Index was out of range. Must be non-
negative and less than the size of the collection.
Parameter name: index]
System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument
argument, ExceptionResource resource) +64
System.ThrowHelper.ThrowArgumentOutOfRangeException() +15
System.SZArrayHelper.get_Item(Int32 index) +7673124
System.Collections.ObjectModel.ReadOnlyCollection`1.get_Item(Int32
index) +53
NHibernate.Linq.Visitors.EntityExpressionVisitor.VisitMethodCall(MethodCallExpression
expr) +62
NHibernate.Linq.Visitors.ExpressionVisitor.Visit(Expression exp)
+619
NHibernate.Linq.Visitors.NHibernateExpressionVisitor.Visit(Expression
exp) +395
NHibernate.Linq.Visitors.EntityExpressionVisitor.FindEntity(Expression
expr, Boolean findFirst) +79
NHibernate.Linq.Visitors.EntityExpressionVisitor.RootEntity(Expression
expr) +39
NHibernate.Linq.Visitors.BinaryCriterionVisitor.VisitMethodCall(MethodCallExpression
expr) +128
NHibernate.Linq.Visitors.ExpressionVisitor.Visit(Expression exp)
+619
NHibernate.Linq.Visitors.NHibernateExpressionVisitor.Visit(Expression
exp) +395
NHibernate.Linq.Visitors.BinaryCriterionVisitor.GetBinaryCriteria(ICriteria
rootCriteria, ISession session, BinaryExpression expr,
ComparePropToValue comparePropToValue, ComparePropToProp
comparePropToProp, CompareValueToCriteria compareValueToCriteria,
ComparePropToCriteria comparePropToCriteria) +190
NHibernate.Linq.Visitors.WhereArgumentsVisitor.VisitBinaryCriterionExpression(BinaryExpression
expr) +1262
NHibernate.Linq.Visitors.WhereArgumentsVisitor.VisitBinary(BinaryExpression
expr) +114
NHibernate.Linq.Visitors.ExpressionVisitor.Visit(Expression exp)
+229
NHibernate.Linq.Visitors.NHibernateExpressionVisitor.Visit(Expression
exp) +395
NHibernate.Linq.Visitors.ExpressionVisitor.VisitLambda(LambdaExpression
lambda) +73
NHibernate.Linq.Visitors.ExpressionVisitor.Visit(Expression exp)
+684
NHibernate.Linq.Visitors.NHibernateExpressionVisitor.Visit(Expression
exp) +395
NHibernate.Linq.Visitors.WhereArgumentsVisitor.VisitUnary(UnaryExpression
expr) +100
NHibernate.Linq.Visitors.ExpressionVisitor.Visit(Expression exp)
+164
NHibernate.Linq.Visitors.NHibernateExpressionVisitor.Visit(Expression
exp) +395
NHibernate.Linq.Visitors.WhereArgumentsVisitor.GetCriterion(ICriteria
rootCriteria, ISession session, Expression expression) +81
NHibernate.Linq.Visitors.RootVisitor.HandleWhereCall(MethodCallExpression
call) +95
NHibernate.Linq.Visitors.RootVisitor.VisitMethodCall(MethodCallExpression
expr) +651
NHibernate.Linq.Visitors.ExpressionVisitor.Visit(Expression exp)
+619
NHibernate.Linq.Visitors.NHibernateExpressionVisitor.Visit(Expression
exp) +395
NHibernate.Linq.Visitors.NHibernateQueryTranslator.TranslateInternal(Expression
expression) +107
NHibernate.Linq.Visitors.NHibernateQueryTranslator.Translate(Expression
expression, QueryOptions queryOptions) +65
NHibernate.Linq.NHibernateQueryProvider.TranslateExpression(Expression
expression) +454
NHibernate.Linq.NHibernateQueryProvider.Execute(Expression
expression) +60
NHibernate.Linq.Query`1.GetEnumerator() +45
System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
+7665318
System.Linq.Enumerable.ToList(IEnumerable`1 source) +61
--
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.