/// <summary> /// Initializes a new instance of the <see cref="CommandExpression{TFilter}" /> class. /// </summary> /// <param name="propertyMetadataExtractor">A property metadata extractor.</param> /// <param name="noResultSetCommandProcessorFactory">A no result set command processor factory.</param> /// <param name="commandMultipleResultExpressionFactory">The command multiple result expression factory.</param> /// <param name="commandSingleResultExpressionFactory">The command single result expression factory.</param> /// <param name="commandText">The CommandBuilder text.</param> /// <param name="commandType">Type of the CommandBuilder.</param> /// <exception cref="System.ArgumentNullException">databaseManager /// or /// commandText</exception> /// <exception cref="System.ArgumentException">No CommandBuilder text provided.;commandText /// or /// TableDirect is not supported.;commandType</exception> public CommandExpression(IPropertyMetadataExtractor propertyMetadataExtractor, INoResultSetCommandProcessorFactory noResultSetCommandProcessorFactory, ICommandMultipleResultExpressionFactory commandMultipleResultExpressionFactory, ICommandSingleResultExpressionFactory commandSingleResultExpressionFactory, string commandText, CommandType commandType) { if (propertyMetadataExtractor == null) { throw new ArgumentNullException(nameof(propertyMetadataExtractor)); } if (noResultSetCommandProcessorFactory == null) { throw new ArgumentNullException(nameof(noResultSetCommandProcessorFactory)); } if (commandText == null) { throw new ArgumentNullException(nameof(commandText)); } if (string.IsNullOrWhiteSpace(commandText)) { throw new ArgumentException("No CommandBuilder text provided.", nameof(commandText)); } if (commandType == CommandType.TableDirect) { throw new ArgumentException("TableDirect is not supported.", nameof(commandType)); } _propertyMetadataExtractor = propertyMetadataExtractor; _noResultSetCommandProcessorFactory = noResultSetCommandProcessorFactory; _commandMultipleResultExpressionFactory = commandMultipleResultExpressionFactory; _commandSingleResultExpressionFactory = commandSingleResultExpressionFactory; CommandText = commandText; DbCommandType = commandType; }
/// <summary> /// Initializes a new instance of the <see cref="CommandExpressionFactory" /> class. /// </summary> /// <param name="propertyMetadataExtractor">The property metadata extractor.</param> /// <param name="noResultSetCommandProcessorFactory">The no result set command processor factory.</param> /// <param name="commandMultipleResultExpressionFactory">The command multiple result expression factory.</param> /// <param name="commandSingleResultExpressionFactory">The command single result expression factory.</param> /// <exception cref="System.ArgumentNullException"> /// </exception> public CommandExpressionFactory( IPropertyMetadataExtractor propertyMetadataExtractor, INoResultSetCommandProcessorFactory noResultSetCommandProcessorFactory, ICommandMultipleResultExpressionFactory commandMultipleResultExpressionFactory, ICommandSingleResultExpressionFactory commandSingleResultExpressionFactory) { if (propertyMetadataExtractor == null) { throw new ArgumentNullException(nameof(propertyMetadataExtractor)); } if (noResultSetCommandProcessorFactory == null) { throw new ArgumentNullException(nameof(noResultSetCommandProcessorFactory)); } if (commandMultipleResultExpressionFactory == null) { throw new ArgumentNullException(nameof(commandMultipleResultExpressionFactory)); } if (commandSingleResultExpressionFactory == null) { throw new ArgumentNullException(nameof(commandSingleResultExpressionFactory)); } _propertyMetadataExtractor = propertyMetadataExtractor; _noResultSetCommandProcessorFactory = noResultSetCommandProcessorFactory; _commandMultipleResultExpressionFactory = commandMultipleResultExpressionFactory; _commandSingleResultExpressionFactory = commandSingleResultExpressionFactory; }