コード例 #1
0
        public virtual void Create_and_clone_UDT_mapping_with_converter()
        {
            var mapping = new SqlServerUdtTypeMapping(
                typeof(object),
                "storeType",
                RelationalTypeMapping.StoreTypeModifierKind.None,
                "udtType",
                new FakeValueConverter(),
                new FakeValueComparer(),
                new FakeValueComparer(),
                DbType.VarNumeric,
                false,
                33,
                true);

            var clone = (SqlServerUdtTypeMapping)mapping.Clone("<clone>", 66);

            Assert.NotSame(mapping, clone);
            Assert.Same(mapping.GetType(), clone.GetType());
            Assert.Equal("storeType", mapping.StoreType);
            Assert.Equal("<clone>", clone.StoreType);
            Assert.Equal("udtType", mapping.UdtTypeName);
            Assert.Equal("udtType", clone.UdtTypeName);
            Assert.Equal(DbType.VarNumeric, clone.DbType);
            Assert.Equal(33, mapping.Size);
            Assert.Equal(66, clone.Size);
            Assert.False(mapping.IsUnicode);
            Assert.False(clone.IsUnicode);
            Assert.NotNull(mapping.Converter);
            Assert.Same(mapping.Converter, clone.Converter);
            Assert.Same(mapping.Comparer, clone.Comparer);
            Assert.Same(mapping.KeyComparer, clone.KeyComparer);
            Assert.Same(typeof(object), clone.ClrType);
            Assert.True(mapping.IsFixedLength);
            Assert.True(clone.IsFixedLength);

            var newConverter = new FakeValueConverter();

            clone = (SqlServerUdtTypeMapping)mapping.Clone(newConverter);

            Assert.NotSame(mapping, clone);
            Assert.Same(mapping.GetType(), clone.GetType());
            Assert.Equal("storeType", mapping.StoreType);
            Assert.Equal("storeType", clone.StoreType);
            Assert.Equal("udtType", mapping.UdtTypeName);
            Assert.Equal("udtType", clone.UdtTypeName);
            Assert.Equal(DbType.VarNumeric, clone.DbType);
            Assert.Equal(33, mapping.Size);
            Assert.Equal(33, clone.Size);
            Assert.False(mapping.IsUnicode);
            Assert.False(clone.IsUnicode);
            Assert.NotSame(mapping.Converter, clone.Converter);
            Assert.Same(mapping.Comparer, clone.Comparer);
            Assert.Same(mapping.KeyComparer, clone.KeyComparer);
            Assert.Same(typeof(object), clone.ClrType);
            Assert.True(mapping.IsFixedLength);
            Assert.True(clone.IsFixedLength);
        }
コード例 #2
0
        public virtual void Can_generate_SqlGeography_literal()
        {
            var typeMapping = CreateTypeMappingSource(
                new TestTypeMappingPlugin <FakeSqlGeography>(
                    SqlServerUdtTypeMapping.CreateSqlSpatialMapping(
                        typeof(FakeSqlGeography),
                        "geography")
                    .LiteralGenerator));

            Assert.Equal(
                "Microsoft.SqlServer.Types.FakeSqlGeography.STGeomFromText(new System.Data.SqlTypes.SqlChars(new System.Data.SqlTypes.SqlString(\"POINT (1 2)\")), 4326)",
                new CSharpHelper(typeMapping).UnknownLiteral(new FakeSqlGeography("POINT (1 2)", 4326)));
        }
コード例 #3
0
        public virtual void Can_generate_SqlHierarchyId_literal()
        {
            var typeMapping = CreateTypeMappingSource(
                new TestTypeMappingPlugin <FakeSqlHierarchyId>(
                    SqlServerUdtTypeMapping.CreateSqlHierarchyIdMapping(
                        typeof(FakeSqlHierarchyId)).LiteralGenerator));

            Assert.Equal(
                "Microsoft.SqlServer.Types.FakeSqlHierarchyId.Parse(new System.Data.SqlTypes.SqlString(\"/1/1/3/\"))",
                new CSharpHelper(typeMapping).UnknownLiteral(
                    FakeSqlHierarchyId.Parse(
                        new SqlString("/1/1/3/"))));
        }
コード例 #4
0
    public virtual void Create_and_clone_UDT_mapping_with_converter()
    {
        Func <object, Expression> literalGenerator = Expression.Constant;

        var mapping = new SqlServerUdtTypeMapping(
            typeof(object),
            "storeType",
            literalGenerator,
            StoreTypePostfix.None,
            "udtType",
            new FakeValueConverter(),
            new FakeValueComparer(),
            new FakeValueComparer(),
            DbType.VarNumeric,
            false,
            33,
            true);

        var clone = (SqlServerUdtTypeMapping)mapping.Clone("<clone>", 66);

        Assert.NotSame(mapping, clone);
        Assert.Same(mapping.GetType(), clone.GetType());
        Assert.Equal("storeType", mapping.StoreType);
        Assert.Equal("<clone>", clone.StoreType);
        Assert.Equal("udtType", mapping.UdtTypeName);
        Assert.Equal("udtType", clone.UdtTypeName);
        Assert.Equal(DbType.VarNumeric, clone.DbType);
        Assert.Equal(33, mapping.Size);
        Assert.Equal(66, clone.Size);
        Assert.False(mapping.IsUnicode);
        Assert.False(clone.IsUnicode);
        Assert.NotNull(mapping.Converter);
        Assert.Same(mapping.Converter, clone.Converter);
        Assert.Same(mapping.Comparer, clone.Comparer);
        Assert.Same(mapping.KeyComparer, clone.KeyComparer);
        Assert.Same(typeof(object), clone.ClrType);
        Assert.True(mapping.IsFixedLength);
        Assert.True(clone.IsFixedLength);
        Assert.Same(literalGenerator, clone.LiteralGenerator);

        var newConverter = new FakeValueConverter();

        clone = (SqlServerUdtTypeMapping)mapping.Clone(newConverter);

        Assert.NotSame(mapping, clone);
        Assert.Same(mapping.GetType(), clone.GetType());
        Assert.Equal("storeType", mapping.StoreType);
        Assert.Equal("storeType", clone.StoreType);
        Assert.Equal("udtType", mapping.UdtTypeName);
        Assert.Equal("udtType", clone.UdtTypeName);
        Assert.Equal(DbType.VarNumeric, clone.DbType);
        Assert.Equal(33, mapping.Size);
        Assert.Equal(33, clone.Size);
        Assert.False(mapping.IsUnicode);
        Assert.False(clone.IsUnicode);
        Assert.NotSame(mapping.Converter, clone.Converter);
        Assert.Same(mapping.Comparer, clone.Comparer);
        Assert.Same(mapping.KeyComparer, clone.KeyComparer);
        Assert.Same(typeof(object), clone.ClrType);
        Assert.True(mapping.IsFixedLength);
        Assert.True(clone.IsFixedLength);
        Assert.Same(literalGenerator, clone.LiteralGenerator);
    }