public static IDbRequest Create(IProvider queryProvider, IStatement statement, DbRequestMode mode, string connectionString = null, IEnumerable <IStatement> prerequisiteStatements = null, ILoggerFactory loggerFactory = null) { if (queryProvider == null) { throw new ArgumentNullException(nameof(queryProvider)); } if (statement == null) { throw new ArgumentNullException(nameof(statement)); } var properties = new DataRequestProperties { Statement = statement, Mode = mode, ConnectionString = connectionString, QueryProvider = queryProvider }; if (prerequisiteStatements != null) { foreach (var ps in prerequisiteStatements) { properties.PrerequisiteStatements.Add(ps); } } return(new DataRequest { properties = properties, loggerFactory = loggerFactory }); }
internal DataRequestProperties Clone() { var clone = new DataRequestProperties { ConnectionString = this.ConnectionString, Mode = this.Mode, QueryProvider = this.QueryProvider, Statement = this.Statement }; foreach (var ps in this.PrerequisiteStatements) { clone.PrerequisiteStatements.Add(ps); } return(clone); }
public static IDbRequest Create <T>(DataRequestProperties properties, ILoggerFactory loggerFactory = null) where T : IProvider { if (properties == null) { throw new ArgumentNullException(nameof(properties)); } if (properties.Statement == null) { throw new ArgumentException("properties.Statement"); } var prop = properties.Clone(); prop.QueryProvider = Providers.GetOrAdd(typeof(T), t => Activator.CreateInstance <T>()); return(new DataRequest { properties = prop, loggerFactory = loggerFactory }); }
public static IDbRequest Create(DataRequestProperties properties, ILoggerFactory loggerFactory = null) { if (properties == null) { throw new ArgumentNullException(nameof(properties)); } if (properties.QueryProvider == null) { throw new ArgumentException("properties.QueryProvider"); } if (properties.Statement == null) { throw new ArgumentException("properties.Statement"); } return(new DataRequest { properties = properties.Clone(), loggerFactory = loggerFactory }); }