Exemplo n.º 1
0
        public string GetSql()
        {
            var rawSqlQuery = OrmConfiguration.GetSqlBuilder <TestModel>().Format(
                $@"SELECT {nameof(Id):C},{nameof(Name):C} FROM {nameof(TestModel):T}");

            return(rawSqlQuery);
        }
Exemplo n.º 2
0
        private void PrepareEnvironment <TEntity>(SqlDialect dialect)
        {
            OrmConfiguration.DefaultDialect = dialect;

            // in real library usage, people will use the ISqlBuilder, but for our tests we're gonna need more than that
            _currentSqlBuilder = OrmConfiguration.GetSqlBuilder <TEntity>() as IStatementSqlBuilder;
            _currentDialect    = dialect;
            _selectColumnNames = _currentSqlBuilder.SelectProperties.Select(propInfo => propInfo.DatabaseColumnName).ToArray();
        }
Exemplo n.º 3
0
        public void ThenIShouldGetAValidJoinQueryStatementForWorkstation()
        {
            var buildingSqlBuilder = OrmConfiguration.GetSqlBuilder <Building>();
            var expectedQuery      =
                $@" SELECT {_currentSqlBuilder.GetTableName()}.{_currentSqlBuilder.GetColumnName(nameof(Workstation.WorkstationId))}, {buildingSqlBuilder.GetTableName()}.{buildingSqlBuilder.GetColumnName(nameof(Building.BuildingId))}
                    FROM {_currentSqlBuilder.GetTableName()}, {buildingSqlBuilder.GetTableName()}
                    WHERE {_currentSqlBuilder.GetTableName()}.{_currentSqlBuilder.GetColumnName(nameof(Workstation.BuildingId))} = {buildingSqlBuilder.GetTableName()}.{buildingSqlBuilder.GetColumnName(nameof(Building.BuildingId))}";

            Assert.AreEqual(expectedQuery, _buildingRawJoinQueryStatement);
        }
Exemplo n.º 4
0
        public void WhenIQueryForAMaximumOfWorkstationEntitiesInReverseOrderOfWorkstationIdSkippingRecords(int?max, int?skip)
        {
            var sqlBuilder = OrmConfiguration.GetSqlBuilder <Workstation>();

            _testContext.QueriedEntities.AddRange(
                _testContext.DatabaseConnection.Find <Workstation>(
                    statementOptions =>
                    statementOptions.Where($"{nameof(Workstation.WorkstationId):C} IS NOT NULL")
                    .OrderBy($"{nameof(Workstation.InventoryIndex):C} DESC")
                    .Skip(skip)
                    .Top(max)));
        }
Exemplo n.º 5
0
        public virtual Task <TEntity> GetKeyAsync(TPk key, IUnitOfWork uow)
        {
            if (_container.IsIEntity <TEntity, TPk>())
            {
                var sql = OrmConfiguration.GetSqlBuilder <TEntity>();
                return(uow.Connection.QuerySingleOrDefaultAsync <TEntity>(
                           $@"SELECT {sql.ConstructColumnEnumerationForSelect()} 
                       FROM {sql.GetTableName()} 
                       WHERE {sql.GetColumnName("Id")} = @Id",
                           new { Id = key }, uow.Transaction));
            }

            var entity = CreateEntityAndSetKeyValue(key);

            return(uow.GetAsync(entity));
        }
Exemplo n.º 6
0
        public virtual TEntity GetKey(TPk key, ISession session)
        {
            if (_container.IsIEntity <TEntity, TPk>())
            {
                var sql = OrmConfiguration.GetSqlBuilder <TEntity>();
                return(session.QuerySingleOrDefault <TEntity>(
                           $@"SELECT {sql.ConstructColumnEnumerationForSelect()} 
                       FROM {sql.GetTableName()} 
                       WHERE {sql.GetColumnName("Id")} = @Id",
                           new { Id = key }));
            }

            var entity = CreateEntityAndSetKeyValue(key);

            return(session.Get(entity));
        }