I'm using dotConnect to Oracle 5.70.146.0, when I try following LINQ, I received exception:
Code: Select all
return (from l in context.Setups
where String.Equals(l.MaterialName, materialName, StringComparison.InvariantCultureIgnoreCase)
select l.OperationName).Distinct();
Message="Method 'Boolean Equals(System.String, System.String, System.StringComparison)' is not supported for execution as SQL."
Source="Devart.Data.Linq"
StackTrace:
at Devart.Data.Linq.Provider.Query.SqlFormatter.Visitor.Visit(SqlNode node)
at Devart.Data.Linq.Provider.Query.SqlFormatter.Visitor.VisitWithParens(SqlNode node, SqlNode outer)
at Devart.Data.Linq.Provider.Query.SqlFormatter.Visitor.VisitBinaryOperator(ad bo)
at Devart.Data.Linq.Provider.Query.SqlVisitor.Visit(SqlNode node)
at Devart.Data.Linq.Provider.Query.SqlFormatter.Visitor.Visit(SqlNode node)
at Devart.Data.Linq.Provider.Query.SqlFormatter.Visitor.VisitSelect(v ss)
at Devart.Data.Linq.Provider.Query.SqlVisitor.VisitAlias(d a)
at Devart.Data.Linq.Provider.Query.SqlVisitor.Visit(SqlNode node)
at Devart.Data.Linq.Provider.Query.SqlFormatter.Visitor.Visit(SqlNode node)
at Devart.Data.Linq.Provider.Query.SqlVisitor.VisitIncludeScope(am node)
at Devart.Data.Linq.Provider.Query.SqlFormatter.Visitor.VisitIncludeScope(am node)
at Devart.Data.Linq.Provider.Query.SqlVisitor.Visit(SqlNode node)
at Devart.Data.Linq.Provider.Query.SqlFormatter.Visitor.Visit(SqlNode node)
at Devart.Data.Linq.Provider.Query.SqlFormatter.Format(SqlNode node, CommandType& commandType)
at Devart.Data.Linq.Provider.DataProvider.BuildQuery(ResultShape resultShape, Type resultType, SqlNode node, IList`1 externalParameterAccessors)
at Devart.Data.Linq.Provider.DataProvider.BuildQuery(Expression query)
at Devart.Data.Linq.Provider.DataProvider.Devart.Data.Linq.Provider.IProvider.Compile(Expression query)
at Devart.Data.Linq.DataQuery`1.i()
How can I do case-insensitive compasion without using str1.ToUpper() == str2.ToUpper()?