public static int IndexOf(String s1, String s2, CacheQueryOptions cqo) {
   return s1.IndexOf(s2, cqo.StringComparison);
 }
 public static bool Contains(String s1, String s2, CacheQueryOptions cqo) {
   return s1.IndexOf(s2, cqo.StringComparison) >= 0;
 }
 public static bool EndsWith(String s1, String s2, CacheQueryOptions cqo) {
   return s1.EndsWith(s2, cqo.StringComparison);
 }
 public static bool NotEquals(String s1, String s2, CacheQueryOptions cqo) {
   if (cqo.UseSql92CompliantStringComparison) {
     s1 = (s1 ?? "").TrimEnd();
     s2 = (s2 ?? "").TrimEnd();
   }
   return !String.Equals(s1, s2, cqo.StringComparison);
 }
 public static Expression<Func<EntityManager, IEnumerable>> Visit(EntityQuery query, CacheQueryOptions cacheQueryOptions)  {
   var visitor = new CacheQueryExpressionVisitor(query, cacheQueryOptions);
   return visitor.VisitRoot(query.Expression);
 }
 /// <summary>
 /// For internal use only.
 /// </summary>
 /// <param name="cacheQueryOptions"></param>
 /// <param name="entityManagerParameterExpr"></param>
 private  CacheQueryExpressionVisitor(EntityQuery query, CacheQueryOptions cacheQueryOptions )
   : base() {
     _query = query;
     _cacheQueryOptions = cacheQueryOptions;
     _entityManagerParameterExpr = Expression.Parameter(typeof(EntityManager));
 }