Skip to content

v4.0.88

Compare
Choose a tag to compare
@Ahoo-Wang Ahoo-Wang released this 24 Jul 05:46
· 218 commits to master since this release
  1. add support PropertyChanged for IsProperty-Tag
  2. update SmartSqlMapConfig.EnablePropertyChangedTrack default=false
  3. fix ResolveConfigPath with Env bug
  4. add support OrderBy Tag -> ref #56
  5. optimize deps-version
  6. add PropertyTokenizer
  7. add support nest object access by IGetAccessorFactory
  8. add support nest object access -> ref #51
[Fact]
        public void QueryNestObject1()
        {
            var result = SqlMapper.ExecuteScalar<int>(new RequestContext
            {
                RealSql = "SELECT @User.Id",
                Request = new {User = new {Id = 1}}
            });

            Assert.Equal(1, result);
        }

        [Fact]
        public void QueryNestObject2()
        {
            var result = SqlMapper.ExecuteScalar<int>(new RequestContext
            {
                RealSql = "SELECT @User.Info.Id",
                Request = new
                {
                    User = new
                    {
                        Info = new
                        {
                            Id = 1
                        }
                    }
                }
            });

            Assert.Equal(1, result);
        }

        [Fact]
        public void QueryNestArray()
        {
            var result = SqlMapper.ExecuteScalar<int>(new RequestContext
            {
                RealSql = "SELECT @Order.Items[0]",
                Request = new
                {
                    Order = new
                    {
                        Items = new int[] {1}
                    }
                }
            });

            Assert.Equal(1, result);
        }

        [Fact]
        public void QueryNestList()
        {
            var result = SqlMapper.ExecuteScalar<int>(new RequestContext
            {
                RealSql = "SELECT @Order.Items[0]",
                Request = new
                {
                    Order = new
                    {
                        Items = new List<int>
                        {
                            1
                        }
                    }
                }
            });

            Assert.Equal(1, result);
        }
<?xml version="1.0" encoding="utf-8" ?>
<SmartSqlMap Scope="NestTest" xmlns="http://SmartSql.net/schemas/SmartSqlMap.xsd">
  <Statements>
    
    <Statement Id="QueryNestObject2">
      SELECT @User.Info.Id
    </Statement>

    <Statement Id="QueryNestArray">
      SELECT @Order.Items[0]
    </Statement>

    <Statement Id="QueryNestDic">
      SELECT @Order.Items[Id]
    </Statement>

    <Statement Id="QueryNestArrayObject">
      SELECT @Order.Items[0].Name
    </Statement>

    <Statement Id="FilterNestObject1">
      <IsEqual Property="User.Id" CompareValue="1">
        SELECT @User.Id
      </IsEqual>
    </Statement>

    <Statement Id="FilterNestObject2">
      <IsEqual Property="User.Info.Id" CompareValue="1">
        SELECT @User.Info.Id
      </IsEqual>
    </Statement>

    <Statement Id="FilterNestArray">
      <IsEqual Property="Order.Items[0]" CompareValue="1">
        SELECT @Order.Items[0]
      </IsEqual>
    </Statement>

    <Statement Id="FilterNestDic">
      <IsEqual Property="Order.Items[Id]" CompareValue="1">
        SELECT @Order.Items[Id]
      </IsEqual>
    </Statement>

    <Statement Id="FilterNestArrayObject">
      <IsEqual Property="Order.Items[0].Name" CompareValue="SmartSql">
        SELECT @Order.Items[0].Name
      </IsEqual>
    </Statement>
    
  </Statements>
</SmartSqlMap>