public override void Select(string name, string itemName, IWrapper <SqlServerQueryCommand> childQuery, IDbFragment value) { childQuery .ForJsonPath() .Select(value) .As(itemName); //childQuery.Select(DbFunctions.Coalesce(SqlServerDbFunctions.JsonAgg(expression), SqlServerDbFunctions.Cast("[]", new JsonColumnType()))); command.Select(db.Functions.JsonQuery(db.Functions.Coalesce(childQuery.Value, "[]".DbValue()))).As(name); }
public override JsonQueryBuilderAdapter Select(IWrapper <SqlServerQueryCommand> childQuery, string name, bool isSingular) { if (isSingular) { childQuery.ForJsonPathWithoutArrayWrapper(); } else { childQuery.ForJsonPath(); } if (isSingular) { command.Select(db.Functions.JsonQuery(childQuery.Value)).As(name); } else { command.Select(db.Functions.JsonQuery(db.Functions.Coalesce(childQuery.Value, (DbString)"[]"))).As(name); } return(new SqlServerJsonQueryBuilderAdapter(db, childQuery)); }