Пример #1
0
 public GroupByBuilder(SqlDataModel <TEntity> dataModel, ValueConverter <TEntity> valueConverter)
 {
     _dataModel       = dataModel;
     _dataSchema      = dataModel.DataSchema;
     _valueConverter  = valueConverter;
     _tableIdentifier = valueConverter.TableIdentifier;
 }
Пример #2
0
 public ColumnWithAliasSourceQueryExpression(string columnName, IAliasIdentifier sourceIdentifier,
                                             SqlStorageField sqlStorageField) : base(columnName, sourceIdentifier == null ? null : new AliasReferenceQueryExpression(sourceIdentifier))
 {
     ColumnName       = columnName;
     SourceIdentifier = sourceIdentifier;
     SqlStorageField  = sqlStorageField;
 }
Пример #3
0
 public ConditionBuilder(SqlDataModel <TEntity> dataModel, ConditionConverter <TEntity> conditionConverter)
 {
     _dataModel         = dataModel;
     _dataSchema        = dataModel.DataSchema;
     _conditionConveter = conditionConverter;
     _tableIdentifier   = conditionConverter.TableIdentifier;
 }
Пример #4
0
 public JoinBuilder(JoinSpecification <TEntity> specification, IAliasIdentifier left, IAliasIdentifier right, JoinDirection direction, params JoinColumnPair[] columnPairs)
 {
     Left          = left;
     Right         = right;
     Direction     = direction;
     ColumnPairs   = columnPairs;
     Specification = specification;
 }
Пример #5
0
 public ProjectionBuilder(SqlDataModel <TEntity> dataModel, ValueConverter <TEntity> valueConverter,
                          IObjectFactory objectFactory = null)
 {
     _dataModel       = dataModel;
     _dataSchema      = dataModel.DataSchema;
     _valueConverter  = valueConverter;
     _tableIdentifier = valueConverter.TableIdentifier;
     _objectFactory   = objectFactory ?? DefaultObjectFactory.Instance;
 }
Пример #6
0
 public JoinBuilder(JoinSpecification <TEntity> specification, IAliasIdentifier left, IAliasIdentifier right, string rightAlias, JoinDirection direction, params JoinColumnPair[] columnPairs) :
     this(specification, left, right, direction, columnPairs)
 {
     _rightAlias = rightAlias;
 }
Пример #7
0
 public ConditionConverter(SqlDataModel <TEntity> dataModel, IAliasIdentifier tableIdentifier)
 {
     _visitor = new ExpressionConversionVisitor <TEntity>(dataModel, tableIdentifier);
 }
Пример #8
0
 public AliasReferenceQueryExpression(IAliasIdentifier aliasIdentifier) : base(null)
 {
     AliasIdentifier = aliasIdentifier;
 }
Пример #9
0
        internal IEnumerable <(JoinBuilder <TEntity> Builder, IAliasIdentifier Alias)> CreateJoin(DataSchema dataSchema, SqlStorageField <TEntity> storageField,
                                                                                                  IAliasIdentifier tableIdentifier)
        {
            if (RequiredJoin != null)
            {
                foreach (var parentJoin in RequiredJoin.CreateJoin(dataSchema, storageField, tableIdentifier))
                {
                    yield return(parentJoin);
                }
            }

            var joinedDataModel = dataSchema.Sql.SqlEntities.FirstOrDefault(q => q.EntityType == EntityType);
            var leftIdentifier  = tableIdentifier;

            if (RequiredJoin != null)
            {
                leftIdentifier = new ImmutableIdentifier(RequiredJoin.JoinName);
            }
            var rightIdentifier = new ImmutableIdentifier(joinedDataModel.StorageModel.DefaultTableName);
            var aliasIdentifier = new ImmutableIdentifier(JoinName);

            var joinBuilder = CreateJoin(
                leftIdentifier,
                rightIdentifier,
                aliasIdentifier.AliasIdentifier
                );

            yield return(joinBuilder, aliasIdentifier);
        }
Пример #10
0
 public IEnumerable <JoinBuilder <TEntity> > CreateJoinChain(DataSchema dataSchema, IAliasIdentifier tableIdentifier)
 {
     return(CreateJoin(dataSchema, null, tableIdentifier).Select(q => q.Builder));
 }
Пример #11
0
 public JoinBuilder <TEntity> CreateJoin(IAliasIdentifier left, IAliasIdentifier right, string rightAlias)
 {
     return(new JoinBuilder <TEntity>(this, left, right, rightAlias, JoinDirection.Left, JoinColumns));
 }
 public ExpressionConversionVisitor(SqlDataModel <TEntity> dataModel, IAliasIdentifier tableIdentifier = null)
 {
     DataModel        = dataModel;
     _dataSchema      = dataModel.DataSchema;
     _tableIdentifier = tableIdentifier ?? new ImmutableIdentifier(dataModel.StorageModel.DefaultTableName);
 }