In one of our projects with ASP.net MVC, Oracle and Telerik Kendo we have a problem with searches since they are differentiating between uppercase, lowercase and accents. We create a trigger in the DB so that after the start of stable session NLS_SORT=BINARY_AI
and NLS_COMP=LINGUISTIC
which solves the problem, but checking the queries generated by the extension of kendo ToDataSourceResult
instead of generating a pl / sql that uses like
generates an instruction similar to this: nvl(instr(lower("table"."Column"),lower('findThis')))>0
we can see this using dbContext.Database.Log = new Action<string>((s) => { System.Diagnostics.Debug.WriteLine(s); });
The versions of the libraries are:
<package id="EntityFramework" version="6.1.3" targetFramework="net452" />
<package id="Oracle.ManagedDataAccess" version="12.2.1100" targetFramework="net451" />
<package id="Oracle.ManagedDataAccess.EntityFramework" version="12.2.1100" targetFramework="net451" />
Kendo 2016.1.112.545
These components include the source code, so by revising the same we see that he applies a ToLower
to the strings
so to test if this was the one that generated the behavior we modified it eliminating them, this resulted queries are generated with like
, but we prefer not to modify the library as it could make future updates difficult.