예제 #1
0
        public GuidTypeMapperTests(DatabaseFixture fixture)
        {
            Fixture = fixture;
            OracleTypeMapper.AddTypeHandler <Guid>(new GuidRaw16TypeHandler());

            var columns = new[]
            {
                new TableColumn {
                    Name = "CustomerId", DataType = OracleMappingType.Raw, Size = 16, PrimaryKey = true
                },
                new TableColumn {
                    Name = "Name", DataType = OracleMappingType.Varchar2, Size = 40
                },
                new TableColumn {
                    Name = "City", DataType = OracleMappingType.Varchar2, Size = 40
                },
                new TableColumn {
                    Name = "OtherGuid", DataType = OracleMappingType.Raw, Size = 16, Nullable = true
                },
            };

            TableCreator.Create(Fixture.Connection, "GuidCustomerTest", columns);
            InsertCustomer(new Customer {
                CustomerId = customerId, Name = "DIPS AS", City = "Oslo"
            });
        }
예제 #2
0
        public virtual void GenerateSqlLiteralValue_returns_NonUnicode_String_literal()
        {
            var literal = new OracleTypeMapper(new RelationalTypeMapperDependencies())
                          .GetMapping("varchar2").GenerateSqlLiteral("A Non-Unicode String");

            Assert.Equal("'A Non-Unicode String'", literal);
        }
예제 #3
0
        public override void GenerateSqlLiteral_returns_ByteArray_literal()
        {
            var value   = new byte[] { 0xDA, 0x7A };
            var literal = new OracleTypeMapper(new RelationalTypeMapperDependencies())
                          .GetMapping(typeof(byte[])).GenerateSqlLiteral(value);

            Assert.Equal("0xDA7A", literal);
        }
예제 #4
0
        public override void GenerateSqlLiteral_returns_DateTimeOffset_literal()
        {
            var value   = new DateTimeOffset(2015, 3, 12, 13, 36, 37, 371, new TimeSpan(-7, 0, 0));
            var literal = new OracleTypeMapper(new RelationalTypeMapperDependencies())
                          .GetMapping(typeof(DateTimeOffset)).GenerateSqlLiteral(value);

            Assert.Equal("'2015-03-12T13:36:37.371-07:00'", literal);
        }
예제 #5
0
        public override void GenerateSqlLiteral_returns_DateTime_literal()
        {
            var value   = new DateTime(2015, 3, 12, 13, 36, 37, 371);
            var literal = new OracleTypeMapper(new RelationalTypeMapperDependencies())
                          .GetMapping(typeof(DateTime)).GenerateSqlLiteral(value);

            Assert.Equal("TO_DATE('2015-03-12 13:36:37', 'YYYY-MM-DD HH24:MI:SS')", literal);
        }
예제 #6
0
        public void Does_not_do_rowversion_mapping_for_non_computed_concurrency_tokens()
        {
            var property = CreateEntityType().AddProperty("MyProp", typeof(byte[]));

            property.IsConcurrencyToken = true;

            var typeMapping = new OracleTypeMapper(new RelationalTypeMapperDependencies()).GetMapping(property);

            Assert.Equal(DbType.Binary, typeMapping.DbType);
            Assert.Equal("BLOB", typeMapping.StoreType);
        }
        public static ConventionSet Build()
        {
            var oracleTypeMapper = new OracleTypeMapper(new RelationalTypeMapperDependencies());

            return(new OracleConventionSetBuilder(
                       new RelationalConventionSetBuilderDependencies(oracleTypeMapper, currentContext: null, setFinder: null))
                   .AddConventions(
                       new CoreConventionSetBuilder(
                           new CoreConventionSetBuilderDependencies(oracleTypeMapper))
                       .CreateConventionSet()));
        }
예제 #8
0
        public void Does_non_key_Oracle_fixed_length_binary_mapping()
        {
            var property = CreateEntityType().AddProperty("MyBinaryProp", typeof(byte[]));

            property.Relational().ColumnType = "raw(100)";

            var typeMapping = new OracleTypeMapper(new RelationalTypeMapperDependencies()).GetMapping(property);

            Assert.Equal(DbType.Binary, typeMapping.DbType);
            Assert.Equal("raw(100)", typeMapping.StoreType);
        }
        public static ConventionSet Build()
        {
            var oracleTypeMapper = new OracleTypeMapper(new RelationalTypeMapperDependencies());

            return(new OracleConventionSetBuilder(
                       new RelationalConventionSetBuilderDependencies(oracleTypeMapper, null, null),
                       new OracleSqlGenerationHelper(new RelationalSqlGenerationHelperDependencies()))
                   .AddConventions(
                       new CoreConventionSetBuilder(
                           new CoreConventionSetBuilderDependencies(oracleTypeMapper))
                       .CreateConventionSet()));
        }
예제 #10
0
        public void Binary_key_with_max_length_is_picked_up_by_FK()
        {
            var model  = CreateModel();
            var mapper = new OracleTypeMapper(new RelationalTypeMapperDependencies());

            Assert.Equal(
                "varbinary(100)",
                mapper.FindMapping(model.FindEntityType(typeof(MyRelatedType2)).FindProperty("Id")).StoreType);

            Assert.Equal(
                "varbinary(100)",
                mapper.FindMapping(model.FindEntityType(typeof(MyRelatedType3)).FindProperty("Relationship1Id")).StoreType);
        }
예제 #11
0
        public void Key_with_store_type_is_picked_up_by_FK()
        {
            var model  = CreateModel();
            var mapper = new OracleTypeMapper(new RelationalTypeMapperDependencies());

            Assert.Equal(
                "DECIMAL(29,4)",
                mapper.FindMapping(model.FindEntityType(typeof(MyType)).FindProperty("Id")).StoreType);

            Assert.Equal(
                "DECIMAL(29,4)",
                mapper.FindMapping(model.FindEntityType(typeof(MyRelatedType1)).FindProperty("Relationship1Id")).StoreType);
        }
예제 #12
0
        public void Does_indexed_column_Oracle_binary_mapping()
        {
            var entityType = CreateEntityType();
            var property   = entityType.AddProperty("MyProp", typeof(byte[]));

            entityType.AddIndex(property);

            var typeMapping = new OracleTypeMapper(new RelationalTypeMapperDependencies()).GetMapping(property);

            Assert.Equal(DbType.Binary, typeMapping.DbType);
            Assert.Equal("RAW(900)", typeMapping.StoreType);
            Assert.Equal(900, typeMapping.CreateParameter(new TestCommand(), "Name", "Value").Size);
        }
예제 #13
0
        public void Does_key_Oracle_binary_mapping()
        {
            var property = CreateEntityType().AddProperty("MyProp", typeof(byte[]));

            property.IsNullable = false;
            property.DeclaringEntityType.SetPrimaryKey(property);

            var typeMapping = new OracleTypeMapper(new RelationalTypeMapperDependencies()).GetMapping(property);

            Assert.Equal(DbType.Binary, typeMapping.DbType);
            Assert.Equal("RAW(900)", typeMapping.StoreType);
            Assert.Equal(900, typeMapping.CreateParameter(new TestCommand(), "Name", new byte[3]).Size);
        }
예제 #14
0
        public void Binary_FK_max_length_is_preferred_if_specified()
        {
            var model  = CreateModel();
            var mapper = new OracleTypeMapper(new RelationalTypeMapperDependencies());

            Assert.Equal(
                "varbinary(100)",
                mapper.FindMapping(model.FindEntityType(typeof(MyRelatedType2)).FindProperty("Id")).StoreType);

            Assert.Equal(
                "varbinary(767)",
                mapper.FindMapping(model.FindEntityType(typeof(MyRelatedType3)).FindProperty("Relationship2Id")).StoreType);
        }
예제 #15
0
        public void String_FK_unicode_is_preferred_if_specified()
        {
            var model  = CreateModel();
            var mapper = new OracleTypeMapper(new RelationalTypeMapperDependencies());

            Assert.Equal(
                "VARCHAR2(900)",
                mapper.FindMapping(model.FindEntityType(typeof(MyRelatedType3)).FindProperty("Id")).StoreType);

            Assert.Equal(
                "NVARCHAR2(450)",
                mapper.FindMapping(model.FindEntityType(typeof(MyRelatedType4)).FindProperty("Relationship2Id")).StoreType);
        }
예제 #16
0
        public void String_key_with_unicode_is_picked_up_by_FK()
        {
            var model  = CreateModel();
            var mapper = new OracleTypeMapper(new RelationalTypeMapperDependencies());

            Assert.Equal(
                "VARCHAR2(900)",
                mapper.FindMapping(model.FindEntityType(typeof(MyRelatedType3)).FindProperty("Id")).StoreType);

            Assert.Equal(
                "VARCHAR2(900)",
                mapper.FindMapping(model.FindEntityType(typeof(MyRelatedType4)).FindProperty("Relationship1Id")).StoreType);
        }
예제 #17
0
        public void Key_store_type_if_preferred_if_specified()
        {
            var model  = CreateModel();
            var mapper = new OracleTypeMapper(new RelationalTypeMapperDependencies());

            Assert.Equal(
                "DECIMAL(29,4)",
                mapper.FindMapping(model.FindEntityType(typeof(MyType)).FindProperty("Id")).StoreType);

            Assert.Equal(
                "DECIMAL(29,4)",
                mapper.FindMapping(model.FindEntityType(typeof(MyRelatedType1)).FindProperty("Relationship2Id")).StoreType);
        }
예제 #18
0
        public void Does_non_key_Oracle_rowversion_mapping()
        {
            var property = CreateEntityType().AddProperty("MyProp", typeof(byte[]));

            property.IsConcurrencyToken = true;
            property.ValueGenerated     = ValueGenerated.OnAddOrUpdate;

            var typeMapping = new OracleTypeMapper(new RelationalTypeMapperDependencies()).GetMapping(property);

            Assert.Equal(DbType.Binary, typeMapping.DbType);
            Assert.Equal("BLOB", typeMapping.StoreType);
            Assert.Null(typeMapping.Size);
        }
        public static ConventionSet Build()
        {
            var oracleTypeMapper = new OracleTypeMapper(
                new CoreTypeMapperDependencies(
                    new ValueConverterSelector(
                        new ValueConverterSelectorDependencies())),
                new RelationalTypeMapperDependencies());

            return(new OracleConventionSetBuilder(
                       new RelationalConventionSetBuilderDependencies(oracleTypeMapper, null, null, null))
                   .AddConventions(
                       new CoreConventionSetBuilder(
                           new CoreConventionSetBuilderDependencies(oracleTypeMapper, null, null))
                       .CreateConventionSet()));
        }
예제 #20
0
        public void Does_key_Oracle_string_mapping_ansi()
        {
            var property = CreateEntityType().AddProperty("MyProp", typeof(string));

            property.IsNullable = false;
            property.IsUnicode(false);
            property.DeclaringEntityType.SetPrimaryKey(property);

            var typeMapping = new OracleTypeMapper(new RelationalTypeMapperDependencies()).GetMapping(property);

            Assert.Equal(DbType.AnsiString, typeMapping.DbType);
            Assert.Equal("VARCHAR2(900)", typeMapping.StoreType);
            Assert.Equal(900, typeMapping.Size);
            Assert.False(typeMapping.IsUnicode);
            Assert.Equal(900, typeMapping.CreateParameter(new TestCommand(), "Name", "Value").Size);
        }
예제 #21
0
        public void Does_indexed_column_Oracle_string_mapping_ansi()
        {
            var entityType = CreateEntityType();
            var property   = entityType.AddProperty("MyProp", typeof(string));

            property.IsUnicode(false);
            entityType.AddIndex(property);

            var typeMapping = new OracleTypeMapper(new RelationalTypeMapperDependencies()).GetMapping(property);

            Assert.Equal(DbType.AnsiString, typeMapping.DbType);
            Assert.Equal("VARCHAR2(900)", typeMapping.StoreType);
            Assert.Equal(900, typeMapping.Size);
            Assert.False(typeMapping.IsUnicode);
            Assert.Equal(900, typeMapping.CreateParameter(new TestCommand(), "Name", "Value").Size);
        }
        public static ConventionSet Build()
        {
            var oracleTypeMapper = new OracleTypeMapper(
                new CoreTypeMapperDependencies(
                    new ValueConverterSelector(
                        new ValueConverterSelectorDependencies())),
                new RelationalTypeMapperDependencies());

            return(new OracleConventionSetBuilder(
                       new RelationalConventionSetBuilderDependencies(oracleTypeMapper, currentContext: null, setFinder: null))
                   .AddConventions(
                       new CoreConventionSetBuilder(
                           new CoreConventionSetBuilderDependencies(
                               oracleTypeMapper,
                               new ConstructorBindingFactory()))
                       .CreateConventionSet()));
        }
예제 #23
0
        public BooleanStringTypeMapperTests(DatabaseFixture fixture)
        {
            Fixture = fixture;

            var columns = new[]
            {
                new NumberColumn {
                    Name = "Id", DataType = OracleMappingType.Int32, PrimaryKey = true
                },
                new TableColumn {
                    Name = "BooleanValue", DataType = OracleMappingType.Char, Size = 1
                }
            };

            OracleTypeMapper.AddTypeHandler(typeof(bool), new BooleanStringTypeHandler("Y", "N"));
            TableCreator.Create(Fixture.Connection, "BoolCharTypeMappingTest", columns);
        }
예제 #24
0
        public void Does_foreign_key_Oracle_string_mapping(bool?unicode)
        {
            var property = CreateEntityType().AddProperty("MyProp", typeof(string));

            property.IsNullable = false;
            property.IsUnicode(unicode);
            var fkProperty = property.DeclaringEntityType.AddProperty("FK", typeof(string));
            var pk         = property.DeclaringEntityType.SetPrimaryKey(property);

            property.DeclaringEntityType.AddForeignKey(fkProperty, pk, property.DeclaringEntityType);

            var typeMapping = new OracleTypeMapper(new RelationalTypeMapperDependencies()).GetMapping(fkProperty);

            Assert.Null(typeMapping.DbType);
            Assert.Equal("NVARCHAR2(450)", typeMapping.StoreType);
            Assert.Equal(450, typeMapping.Size);
            Assert.True(typeMapping.IsUnicode);
            Assert.Equal(450, typeMapping.CreateParameter(new TestCommand(), "Name", "Value").Size);
        }