Example #1
0
            public static async Task <TemporaryTestTable> CreateDataTable(SqlDataType sqlDataType, IDataProvider dataProvider)
            {
                var tableName = $"DataTestTable_{sqlDataType.BaseType}";
                await dataProvider.ExecuteNonQueryAsync(QueryExpression.CreateTable(
                                                            tableName,
                                                            QueryExpression.DefineColumn("Data", sqlDataType)
                                                            ));

                return(new TemporaryTestTable(tableName, dataProvider));
            }
Example #2
0
            public static async Task <TemporaryTestTable> CreateAutoIncrementTable(IDataProvider dataProvider)
            {
                await dataProvider.ExecuteNonQueryAsync(QueryExpression.CreateTable(
                                                            AUTOINC_TABLE_NAME,
                                                            QueryExpression.DefineColumn("Id", SqlDataType.Int(), isAutoIncrement: true, isPrimaryKey: true),
                                                            QueryExpression.DefineColumn("Data", SqlDataType.Int())
                                                            ));

                return(new TemporaryTestTable(AUTOINC_TABLE_NAME, dataProvider));
            }
        public virtual async Task CreateTable_CanCreateCompositePrimaryKey()
        {
            var tableName = "CreateTableTest";

            using (new TemporaryTestTable(tableName, DataProvider))
            {
                await DataProvider.ExecuteNonQueryAsync(
                    QueryExpression.CreateTable(
                        tableName,
                        QueryExpression.DefineColumn("AutoId", SqlDataType.Int(), isAutoIncrement: true, isPrimaryKey: true),
                        QueryExpression.DefineColumn("RefId", SqlDataType.Guid(), isNullable: false, isPrimaryKey: true)
                        ));

                Assert.IsTrue(await TableExists(tableName));
            }
        }
        public virtual async Task CreateTable_CanCreateATable()
        {
            var tableName = "CreateTableTest";

            using (new TemporaryTestTable(tableName, DataProvider))
            {
                await DataProvider.ExecuteNonQueryAsync(
                    QueryExpression.CreateTable(
                        tableName,
                        QueryExpression.DefineColumn("Column", SqlDataType.Int())
                        )
                    );

                Assert.IsTrue(await TableExists(tableName));
            }
        }
        private IEnumerable <ColumnDefinitionExpression> GetAllLocalColumns()
        {
            foreach (var field in _entityModel.Fields)
            {
                if (field.IsEntityLocalField)
                {
                    if (field.Column != null)
                    {
                        yield return(QueryExpression.DefineColumn(
                                         field.Column.Name, field.Column.DataType, field.Column.IsNullable,
                                         field.IsPrimaryKey && field.IsSeverGenerated, field.IsPrimaryKey
                                         ));
                    }
                    foreach (var column in GetSubColumns(field))
                    {
                        yield return(column);
                    }
                }
            }

            IEnumerable <ColumnDefinitionExpression> GetSubColumns(EntityField field)
            {
                foreach (var subField in field.SubFields)
                {
                    if (!subField.IsEntityLocalField)
                    {
                        continue;
                    }

                    if (subField.Column != null)
                    {
                        yield return(QueryExpression.DefineColumn(
                                         subField.Column.Name, subField.Column.DataType, subField.Column.IsNullable,
                                         subField.IsPrimaryKey && subField.IsSeverGenerated, subField.IsPrimaryKey
                                         ));
                    }
                    foreach (var column in GetSubColumns(subField))
                    {
                        yield return(column);
                    }
                }
            }
        }