public void Format_Commas_OnNewLine() { var formatted = QueryFormatter.Format("select cola, colb, colc from dbo.table where cola = \"test\""); Assert.Equal(@"SELECT cola ,colb ,colc FROM dbo.table WHERE cola = ""test""", formatted); }
/// <summary> /// Deletes every row in the table that satisfies the given predicate. /// </summary> /// <returns>The number of rows deleted.</returns> public int Delete(Expression <Func <T, bool> > predicate) { if (predicate == null) { throw new ArgumentNullException(nameof(predicate)); } var pred = PropertyReplacer.Replace(predicate.Body, predicate.Parameters[0]); pred = ((SQLiteQueryProvider)Provider).Translate(pred); if (pred is ProjectionExpression projection) { pred = projection.Source; } var args = new List <object>(); var cmdText = $"DELETE FROM [{Name}] WHERE {QueryFormatter.Format(pred, args)};"; _db.Execute(cmdText, args.ToArray()); return(_db.Changes); }
internal IEnumerable <T> ExecuteQuery <T>(ProjectionExpression projection) { List <object> args = new List <object>(); string sql = QueryFormatter.Format(projection.Source, args); Database.Log?.Invoke(sql); using (SQLiteQuery query = Database.ExecuteQuery(sql, args.ToArray())) { LambdaExpression projectorExpr = ProjectionBuilder.Build( projection.Projector, projection.Source.Alias, name => string.IsNullOrEmpty(name) ? 0 : query.GetColumnIndex(name) ); var projector = (Func <SQLiteQueryProvider, SQLiteQuery, T>)projectorExpr.Compile(); while (query.Step()) { yield return(projector(this, query)); } } }
public override string ToString() { return(QueryFormatter.Format(this)); }