- add support PropertyChanged for IsProperty-Tag
- update SmartSqlMapConfig.EnablePropertyChangedTrack default=false
- fix ResolveConfigPath with Env bug
- add support OrderBy Tag -> ref #56
- optimize deps-version
- add PropertyTokenizer
- add support nest object access by IGetAccessorFactory
- 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>