public static IDatabaseQuerySource Source <T>(this IDatabase database, DatabaseParameterHandler parameters, ITransactionSource transaction = null) { #pragma warning disable 612, 618 return(database.Source(database.Config.Table <T>(), parameters, transaction)); #pragma warning restore 612, 618 }
public int Execute(IDatabaseQuery query, DatabaseParameterHandler parameters, ITransactionSource transaction = null) { if (string.IsNullOrEmpty(query.CommandText)) { throw new InvalidOperationException("The query is empty."); } return(this.CreateCommand( query, DatabaseCommandFlags.None, transaction ).Using( command => { if (parameters != null) { parameters(command.Parameters, DatabaseParameterPhase.Fetch); } var result = command.ExecuteNonQuery(); if (parameters != null) { parameters(command.Parameters, DatabaseParameterPhase.Store); } return result; }, () => transaction == null )); }
public EntityAction Update(object persisted, object updated, DatabaseParameterHandler parameters = null) { this.OnUpdating(updated); var update = default(IDatabaseQuery); if (!this.GetUpdateQuery(persisted, updated, out update)) { return(EntityAction.None); } if (parameters == null) { parameters = new ParameterHandlerStrategy(this.Table, updated).Handler; } var count = this.Database.Execute(update, parameters, this.Transaction); if (count != 1) { this.OnConcurrencyViolation(updated); } else { this.OnUpdated(updated); } return(EntityAction.Updated); }
public EntityAction Update(object persisted, object updated, DatabaseParameterHandler parameters = null) { var graph = this.GetEntityGraph((persisted ?? updated).GetType()); this.Visitor.Visit(graph, persisted, updated); return(EntityAction.Updated); }
public EntityAction Delete(object item, DatabaseParameterHandler parameters = null) { var graph = this.GetEntityGraph(item.GetType()); this.Visitor.Visit(graph, item, null); return(EntityAction.Deleted); }
public EntityAction Add(object item, DatabaseParameterHandler parameters = null) { this.OnAdding(item); var add = this.Database.QueryCache.Add(this.Table); if (parameters == null) { parameters = new ParameterHandlerStrategy(this.Table, item).Handler; } var key = this.Database.ExecuteScalar <object>(add, parameters, this.Transaction); this.OnAdded(key, item); return(EntityAction.Added); }
public IDatabaseReader ExecuteReader(IDatabaseQuery query, DatabaseParameterHandler parameters, ITransactionSource transaction = null) { var command = this.CreateCommand(query, DatabaseCommandFlags.None, transaction); if (parameters != null) { parameters(command.Parameters, DatabaseParameterPhase.Fetch); } var result = new DatabaseReader(command.Command, transaction == null); if (parameters != null) { parameters(command.Parameters, DatabaseParameterPhase.Store); } return(result); }
public EntityAction Delete(object item, DatabaseParameterHandler parameters = null) { var delete = this.Database.QueryCache.Delete(this.Table); if (parameters == null) { parameters = new ParameterHandlerStrategy(this.Table, item).Handler; } var count = this.Database.Execute(delete, parameters, this.Transaction); if (count != 1) { this.OnConcurrencyViolation(item); } else { this.OnDeleted(item); } return(EntityAction.Deleted); }
public T ExecuteScalar <T>(IDatabaseQuery query, DatabaseParameterHandler parameters, ITransactionSource transaction = null) { return(this.CreateCommand( query, DatabaseCommandFlags.None, transaction ).Using( command => { if (parameters != null) { parameters(command.Parameters, DatabaseParameterPhase.Fetch); } var result = Converter.ChangeType <T>(command.ExecuteScalar()); if (parameters != null) { parameters(command.Parameters, DatabaseParameterPhase.Store); } return result; }, () => transaction == null )); }
public DatabaseQuerySource(IDatabase database, IDatabaseQueryComposer composer, DatabaseParameterHandler parameters, ITransactionSource transaction = null) { this.Database = database; this.Composer = composer; this.OriginalParameters = parameters; this.Transaction = transaction; this.Reset(); }
public DatabaseQuerySource(IDatabase database, IDatabaseQueryComposer composer, DatabaseParameterHandler parameters, IQueryGraphBuilder fetch, IQueryGraphBuilder add, IQueryGraphBuilder update, IQueryGraphBuilder delete, ITransactionSource transaction = null) : this(database, composer, parameters, transaction) { this.Fetch = fetch; this.Add = add; this.Update = update; this.Delete = delete; }
public IDatabaseQuerySource Source(IDatabaseQueryComposer composer, DatabaseParameterHandler parameters, ITransactionSource transaction = null) { return(new DatabaseQuerySource(this, composer, parameters, transaction)); }
public static IDatabaseSet <T> Set <T>(this IDatabase database, ITableConfig table, DatabaseParameterHandler parameters, ITransactionSource transaction = null) { return(database.Set <T>(database.Source(table, parameters, transaction))); }
public static IAsyncEnumerator <T> ExecuteAsyncEnumerator <T>(this IDatabase database, ITableConfig table, IQueryGraphBuilder query, DatabaseParameterHandler parameters, ITransactionSource transaction = null) { return(database.ExecuteAsyncEnumerator <T>(table, query.Build(), parameters, transaction)); }
public static IAsyncEnumerator <T> ExecuteAsyncEnumerator <T>(this IDatabase database, IDatabaseQuery query, DatabaseParameterHandler parameters, ITransactionSource transaction = null) { return(database.ExecuteAsyncEnumerator <T>(database.Config.Table <T>(), query, parameters, transaction)); }
public static IDatabaseQuerySource Source(this IDatabase database, ITableConfig table, DatabaseParameterHandler parameters, ITransactionSource transaction = null) { return(database.Source(new EntityRelationQueryComposer(database, table), parameters, transaction)); }
public static IDatabaseQuerySource Source(this IDatabase database, IDatabaseQueryComposer composer, DatabaseParameterHandler parameters, ITransactionSource transaction = null) { return(database.Source(composer, parameters, transaction)); }
public IEnumerable <T> ExecuteEnumerator <T>(ITableConfig table, IDatabaseQuery query, DatabaseParameterHandler parameters, ITransactionSource transaction = null) { using (var reader = this.ExecuteReader(query, parameters, transaction)) { var mapper = new EntityMapper(table); var visitor = new EntityCompoundEnumeratorVisitor(); var enumerable = new EntityCompoundEnumerator(this, table, mapper, visitor); var buffer = new EntityEnumeratorBuffer(this); var sink = new EntityEnumeratorSink(table); foreach (var element in enumerable.AsEnumerable <T>(buffer, sink, reader)) { yield return(element); } } }
public static Task <int> ExecuteAsync(this IDatabase database, IQueryGraphBuilder query, DatabaseParameterHandler parameters, ITransactionSource transaction = null) { return(database.ExecuteAsync(query.Build(), parameters, transaction)); }
public IAsyncEnumerator <T> ExecuteAsyncEnumerator <T>(ITableConfig table, IDatabaseQuery query, DatabaseParameterHandler parameters, ITransactionSource transaction = null) { var reader = this.ExecuteReader(query, parameters, transaction); var mapper = new EntityMapper(table); var visitor = new EntityCompoundEnumeratorVisitor(); var enumerable = new EntityCompoundEnumerator(this, table, mapper, visitor); var buffer = new EntityEnumeratorBuffer(this); var sink = new EntityEnumeratorSink(table); return(enumerable.AsEnumerableAsync <T>(buffer, sink, reader, true)); }