Beispiel #1
0
        // PostgreSQL COUNT() always returns bigint, so we need to downcast to int
        // TODO: Translate Count with predicate for GroupBy (see base implementation)
        public override SqlExpression TranslateCount(Expression expression = null)
        {
            if (expression != null)
            {
                // TODO: Translate Count with predicate for GroupBy
                return(null);
            }

            return(_sqlExpressionFactory.Convert(
                       _sqlExpressionFactory.ApplyDefaultTypeMapping(
                           _sqlExpressionFactory.Function("COUNT", new[] { _sqlExpressionFactory.Fragment("*") }, typeof(long))),
                       typeof(int), _sqlExpressionFactory.FindMapping(typeof(int))));
        }
Beispiel #2
0
 public NpgsqlSqlTranslatingExpressionVisitor(
     RelationalSqlTranslatingExpressionVisitorDependencies dependencies,
     IModel model,
     QueryableMethodTranslatingExpressionVisitor queryableMethodTranslatingExpressionVisitor)
     : base(dependencies, model, queryableMethodTranslatingExpressionVisitor)
 {
     _sqlExpressionFactory = (NpgsqlSqlExpressionFactory)dependencies.SqlExpressionFactory;
     _jsonPocoTranslator   = ((NpgsqlMemberTranslatorProvider)Dependencies.MemberTranslatorProvider).JsonPocoTranslator;
     _boolMapping          = _sqlExpressionFactory.FindMapping(typeof(bool));
 }
Beispiel #3
0
 // PostgreSQL COUNT() always returns bigint, so we need to downcast to int
 // TODO: Translate Count with predicate for GroupBy (see base implementation)
 public override SqlExpression TranslateCount(Expression expression = null)
 => _sqlExpressionFactory.Convert(
     _sqlExpressionFactory.ApplyDefaultTypeMapping(
         _sqlExpressionFactory.Function("COUNT", new[] { _sqlExpressionFactory.Fragment("*") }, typeof(long))),
     typeof(int), _sqlExpressionFactory.FindMapping(typeof(int)));