Skip to content

Commit 34c3844

Browse files
committed
x.6.0.27
1 parent b0f1108 commit 34c3844

File tree

10 files changed

+731
-267
lines changed

10 files changed

+731
-267
lines changed

nuget-publish.bat

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
:start
22
::定义版本
3-
set EFCORE2=2.6.0.26
4-
set EFCORE3=3.6.0.26
5-
set EFCORE5=5.6.0.26
6-
set EFCORE6=6.6.0.26
3+
set EFCORE2=2.6.0.27
4+
set EFCORE3=3.6.0.27
5+
set EFCORE5=5.6.0.27
6+
set EFCORE6=6.6.0.27
77

88
::删除所有bin与obj下的文件
99
@echo off

test/ShardingCore.Test/ShardingTest.cs

Lines changed: 145 additions & 81 deletions
Large diffs are not rendered by default.

test/ShardingCore.Test/ShardingTestSync.cs

Lines changed: 83 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1454,31 +1454,88 @@ public void QueryInner_Test()
14541454
var sysUserModInts = _virtualDbContext.Set<SysUserModInt>().Where(o => sysUserMods.Select(i => i.Age).Any(i => i == o.Age)).ToList();
14551455
Assert.Equal(1000, sysUserModInts.Count);
14561456
}
1457-
// [Fact]
1458-
// public void Group_API_Test()
1459-
// {
1460-
// var ids = new[] {"200", "300"};
1461-
// var dateOfMonths = new[] {202111, 202110};
1462-
// var group = _virtualDbContext.Set<SysUserSalary>()
1463-
// .Where(o => ids.Contains(o.UserId) && dateOfMonths.Contains(o.DateOfMonth))
1464-
// .ShardingGroupBy(g => new {UId = g.UserId}, g => new
1465-
// {
1466-
//
1467-
// GroupUserId = g.Key.UId,
1468-
// Count = g.Count(),
1469-
// TotalSalary = g.Sum(o => o.Salary),
1470-
// AvgSalary = g.Average(o => o.Salary),
1471-
// AvgSalaryDecimal = g.Average(o => o.SalaryDecimal),
1472-
// MinSalary = g.Min(o => o.Salary),
1473-
// MaxSalary = g.Max(o => o.Salary)
1474-
// });
1475-
// Assert.Equal(2, group.Count);
1476-
// Assert.Equal(2, group[0].Count);
1477-
// Assert.Equal(2260000, group[0].TotalSalary);
1478-
// Assert.Equal(1130000, group[0].AvgSalary);
1479-
// Assert.Equal(11300, group[0].AvgSalaryDecimal);
1480-
// Assert.Equal(1120000, group[0].MinSalary);
1481-
// Assert.Equal(1140000, group[0].MaxSalary);
1482-
// }
1457+
[Fact]
1458+
public void Group_API_Test()
1459+
{
1460+
var ids = new[] { "200", "300" };
1461+
var dateOfMonths = new[] { 202111, 202110 };
1462+
var group = _virtualDbContext.Set<SysUserSalary>()
1463+
.Where(o => ids.Contains(o.UserId) && dateOfMonths.Contains(o.DateOfMonth))
1464+
.GroupBy(g => new { UId = g.UserId })
1465+
.Select(g => new
1466+
{
1467+
1468+
GroupUserId = g.Key.UId,
1469+
Count = g.Count(),
1470+
TotalSalary = g.Sum(o => o.Salary),
1471+
AvgSalary = g.Average(o => o.Salary),
1472+
AvgSalaryDecimal = g.Average(o => o.SalaryDecimal),
1473+
MinSalary = g.Min(o => o.Salary),
1474+
MaxSalary = g.Max(o => o.Salary)
1475+
}).ToList();
1476+
Assert.Equal(2, group.Count);
1477+
Assert.Equal(2, group[0].Count);
1478+
Assert.Equal(2260000, group[0].TotalSalary);
1479+
Assert.Equal(1130000, group[0].AvgSalary);
1480+
Assert.Equal(11300, group[0].AvgSalaryDecimal);
1481+
Assert.Equal(1120000, group[0].MinSalary);
1482+
Assert.Equal(1140000, group[0].MaxSalary);
1483+
}
1484+
[Fact]
1485+
public void Group_API_Test1()
1486+
{
1487+
var ids = new[] { "200", "300" };
1488+
var dateOfMonths = new[] { 202111, 202110 };
1489+
var group = _virtualDbContext.Set<SysUserSalary>()
1490+
.Where(o => ids.Contains(o.UserId) && dateOfMonths.Contains(o.DateOfMonth))
1491+
.GroupBy(g => new { UId = g.UserId })
1492+
.Select(g => new
1493+
{
1494+
1495+
GroupUserId = g.Key.UId,
1496+
Count = g.Count(),
1497+
TotalSalary = g.Sum(o => o.Salary),
1498+
AvgSalary = g.Average(o => o.Salary),
1499+
AvgSalaryDecimal = g.Average(o => o.SalaryDecimal),
1500+
MinSalary = g.Min(o => o.Salary),
1501+
MaxSalary = g.Max(o => o.Salary)
1502+
}).OrderBy(o => o.TotalSalary).ToList();
1503+
Assert.Equal(2, group.Count);
1504+
Assert.Equal(2, group[0].Count);
1505+
Assert.Equal("200", group[0].GroupUserId);
1506+
Assert.Equal(2260000, group[0].TotalSalary);
1507+
Assert.Equal(1130000, group[0].AvgSalary);
1508+
Assert.Equal(11300, group[0].AvgSalaryDecimal);
1509+
Assert.Equal(1120000, group[0].MinSalary);
1510+
Assert.Equal(1140000, group[0].MaxSalary);
1511+
}
1512+
[Fact]
1513+
public void Group_API_Test2()
1514+
{
1515+
var ids = new[] { "200", "300" };
1516+
var dateOfMonths = new[] { 202111, 202110 };
1517+
var group = _virtualDbContext.Set<SysUserSalary>()
1518+
.Where(o => ids.Contains(o.UserId) && dateOfMonths.Contains(o.DateOfMonth))
1519+
.GroupBy(g => new { UId = g.UserId })
1520+
.Select(g => new
1521+
{
1522+
1523+
GroupUserId = g.Key.UId,
1524+
Count = g.Count(),
1525+
TotalSalary = g.Sum(o => o.Salary),
1526+
AvgSalary = g.Average(o => o.Salary),
1527+
AvgSalaryDecimal = g.Average(o => o.SalaryDecimal),
1528+
MinSalary = g.Min(o => o.Salary),
1529+
MaxSalary = g.Max(o => o.Salary)
1530+
}).OrderByDescending(o => o.TotalSalary).ToList();
1531+
Assert.Equal(2, group.Count);
1532+
Assert.Equal(2, group[0].Count);
1533+
Assert.Equal("300", group[0].GroupUserId);
1534+
Assert.Equal(2690000, group[0].TotalSalary);
1535+
Assert.Equal(1345000, group[0].AvgSalary);
1536+
Assert.Equal(13450, group[0].AvgSalaryDecimal);
1537+
Assert.Equal(1330000, group[0].MinSalary);
1538+
Assert.Equal(1360000, group[0].MaxSalary);
1539+
}
14831540
}
14841541
}

test/ShardingCore.Test/Shardings/SysUserSalaryVirtualTableRoute.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ namespace ShardingCore.Test.Shardings
1717
public class SysUserSalaryVirtualTableRoute:AbstractShardingOperatorVirtualTableRoute<SysUserSalary,int>
1818
{
1919
//public override bool? EnableRouteParseCompileCache => true;
20+
protected override bool EnableHintRoute => true;
2021

2122
public override string ShardingKeyToTail(object shardingKey)
2223
{

test/ShardingCore.Test2x/ShardingTest.cs

Lines changed: 83 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1681,31 +1681,88 @@ public async Task QueryInner_Test()
16811681
var sysUserModInts = await _virtualDbContext.Set<SysUserModInt>().Where(o=>sysUserMods.Select(i=>i.Age).Any(i=>i==o.Age)).ToListAsync();
16821682
Assert.Equal(1000, sysUserModInts.Count);
16831683
}
1684-
// [Fact]
1685-
// public async Task Group_API_Test()
1686-
// {
1687-
// var ids = new[] {"200", "300"};
1688-
// var dateOfMonths = new[] {202111, 202110};
1689-
// var group = await _virtualDbContext.Set<SysUserSalary>()
1690-
// .Where(o => ids.Contains(o.UserId) && dateOfMonths.Contains(o.DateOfMonth))
1691-
// .ShardingGroupByAsync(g => new {UId = g.UserId}, g => new
1692-
// {
1693-
//
1694-
// GroupUserId = g.Key.UId,
1695-
// Count = g.Count(),
1696-
// TotalSalary = g.Sum(o => o.Salary),
1697-
// AvgSalary = g.Average(o => o.Salary),
1698-
// AvgSalaryDecimal = g.Average(o => o.SalaryDecimal),
1699-
// MinSalary = g.Min(o => o.Salary),
1700-
// MaxSalary = g.Max(o => o.Salary)
1701-
// });
1702-
// Assert.Equal(2, group.Count);
1703-
// Assert.Equal(2, group[0].Count);
1704-
// Assert.Equal(2260000, group[0].TotalSalary);
1705-
// Assert.Equal(1130000, group[0].AvgSalary);
1706-
// Assert.Equal(11300, group[0].AvgSalaryDecimal);
1707-
// Assert.Equal(1120000, group[0].MinSalary);
1708-
// Assert.Equal(1140000, group[0].MaxSalary);
1709-
// }
1684+
[Fact]
1685+
public async Task Group_API_Test()
1686+
{
1687+
var ids = new[] { "200", "300" };
1688+
var dateOfMonths = new[] { 202111, 202110 };
1689+
var group = await _virtualDbContext.Set<SysUserSalary>()
1690+
.Where(o => ids.Contains(o.UserId) && dateOfMonths.Contains(o.DateOfMonth))
1691+
.GroupBy(g => new { UId = g.UserId })
1692+
.Select(g => new
1693+
{
1694+
1695+
GroupUserId = g.Key.UId,
1696+
Count = g.Count(),
1697+
TotalSalary = g.Sum(o => o.Salary),
1698+
AvgSalary = g.Average(o => o.Salary),
1699+
AvgSalaryDecimal = g.Average(o => o.SalaryDecimal),
1700+
MinSalary = g.Min(o => o.Salary),
1701+
MaxSalary = g.Max(o => o.Salary)
1702+
}).ToListAsync();
1703+
Assert.Equal(2, group.Count);
1704+
Assert.Equal(2, group[0].Count);
1705+
Assert.Equal(2260000, group[0].TotalSalary);
1706+
Assert.Equal(1130000, group[0].AvgSalary);
1707+
Assert.Equal(11300, group[0].AvgSalaryDecimal);
1708+
Assert.Equal(1120000, group[0].MinSalary);
1709+
Assert.Equal(1140000, group[0].MaxSalary);
1710+
}
1711+
[Fact]
1712+
public async Task Group_API_Test1()
1713+
{
1714+
var ids = new[] { "200", "300" };
1715+
var dateOfMonths = new[] { 202111, 202110 };
1716+
var group = await _virtualDbContext.Set<SysUserSalary>()
1717+
.Where(o => ids.Contains(o.UserId) && dateOfMonths.Contains(o.DateOfMonth))
1718+
.GroupBy(g => new { UId = g.UserId })
1719+
.Select(g => new
1720+
{
1721+
1722+
GroupUserId = g.Key.UId,
1723+
Count = g.Count(),
1724+
TotalSalary = g.Sum(o => o.Salary),
1725+
AvgSalary = g.Average(o => o.Salary),
1726+
AvgSalaryDecimal = g.Average(o => o.SalaryDecimal),
1727+
MinSalary = g.Min(o => o.Salary),
1728+
MaxSalary = g.Max(o => o.Salary)
1729+
}).OrderBy(o => o.TotalSalary).ToListAsync();
1730+
Assert.Equal(2, group.Count);
1731+
Assert.Equal(2, group[0].Count);
1732+
Assert.Equal("200", group[0].GroupUserId);
1733+
Assert.Equal(2260000, group[0].TotalSalary);
1734+
Assert.Equal(1130000, group[0].AvgSalary);
1735+
Assert.Equal(11300, group[0].AvgSalaryDecimal);
1736+
Assert.Equal(1120000, group[0].MinSalary);
1737+
Assert.Equal(1140000, group[0].MaxSalary);
1738+
}
1739+
[Fact]
1740+
public async Task Group_API_Test2()
1741+
{
1742+
var ids = new[] { "200", "300" };
1743+
var dateOfMonths = new[] { 202111, 202110 };
1744+
var group = await _virtualDbContext.Set<SysUserSalary>()
1745+
.Where(o => ids.Contains(o.UserId) && dateOfMonths.Contains(o.DateOfMonth))
1746+
.GroupBy(g => new { UId = g.UserId })
1747+
.Select(g => new
1748+
{
1749+
1750+
GroupUserId = g.Key.UId,
1751+
Count = g.Count(),
1752+
TotalSalary = g.Sum(o => o.Salary),
1753+
AvgSalary = g.Average(o => o.Salary),
1754+
AvgSalaryDecimal = g.Average(o => o.SalaryDecimal),
1755+
MinSalary = g.Min(o => o.Salary),
1756+
MaxSalary = g.Max(o => o.Salary)
1757+
}).OrderByDescending(o => o.TotalSalary).ToListAsync();
1758+
Assert.Equal(2, group.Count);
1759+
Assert.Equal(2, group[0].Count);
1760+
Assert.Equal("300", group[0].GroupUserId);
1761+
Assert.Equal(2690000, group[0].TotalSalary);
1762+
Assert.Equal(1345000, group[0].AvgSalary);
1763+
Assert.Equal(13450, group[0].AvgSalaryDecimal);
1764+
Assert.Equal(1330000, group[0].MinSalary);
1765+
Assert.Equal(1360000, group[0].MaxSalary);
1766+
}
17101767
}
17111768
}

test/ShardingCore.Test2x/ShardingTestSync.cs

Lines changed: 83 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1454,31 +1454,88 @@ public void QueryInner_Test()
14541454
var sysUserModInts = _virtualDbContext.Set<SysUserModInt>().Where(o => sysUserMods.Select(i => i.Age).Any(i => i == o.Age)).ToList();
14551455
Assert.Equal(1000, sysUserModInts.Count);
14561456
}
1457-
// [Fact]
1458-
// public void Group_API_Test()
1459-
// {
1460-
// var ids = new[] {"200", "300"};
1461-
// var dateOfMonths = new[] {202111, 202110};
1462-
// var group = _virtualDbContext.Set<SysUserSalary>()
1463-
// .Where(o => ids.Contains(o.UserId) && dateOfMonths.Contains(o.DateOfMonth))
1464-
// .ShardingGroupBy(g => new {UId = g.UserId}, g => new
1465-
// {
1466-
//
1467-
// GroupUserId = g.Key.UId,
1468-
// Count = g.Count(),
1469-
// TotalSalary = g.Sum(o => o.Salary),
1470-
// AvgSalary = g.Average(o => o.Salary),
1471-
// AvgSalaryDecimal = g.Average(o => o.SalaryDecimal),
1472-
// MinSalary = g.Min(o => o.Salary),
1473-
// MaxSalary = g.Max(o => o.Salary)
1474-
// });
1475-
// Assert.Equal(2, group.Count);
1476-
// Assert.Equal(2, group[0].Count);
1477-
// Assert.Equal(2260000, group[0].TotalSalary);
1478-
// Assert.Equal(1130000, group[0].AvgSalary);
1479-
// Assert.Equal(11300, group[0].AvgSalaryDecimal);
1480-
// Assert.Equal(1120000, group[0].MinSalary);
1481-
// Assert.Equal(1140000, group[0].MaxSalary);
1482-
// }
1457+
[Fact]
1458+
public void Group_API_Test()
1459+
{
1460+
var ids = new[] { "200", "300" };
1461+
var dateOfMonths = new[] { 202111, 202110 };
1462+
var group = _virtualDbContext.Set<SysUserSalary>()
1463+
.Where(o => ids.Contains(o.UserId) && dateOfMonths.Contains(o.DateOfMonth))
1464+
.GroupBy(g => new { UId = g.UserId })
1465+
.Select(g => new
1466+
{
1467+
1468+
GroupUserId = g.Key.UId,
1469+
Count = g.Count(),
1470+
TotalSalary = g.Sum(o => o.Salary),
1471+
AvgSalary = g.Average(o => o.Salary),
1472+
AvgSalaryDecimal = g.Average(o => o.SalaryDecimal),
1473+
MinSalary = g.Min(o => o.Salary),
1474+
MaxSalary = g.Max(o => o.Salary)
1475+
}).ToList();
1476+
Assert.Equal(2, group.Count);
1477+
Assert.Equal(2, group[0].Count);
1478+
Assert.Equal(2260000, group[0].TotalSalary);
1479+
Assert.Equal(1130000, group[0].AvgSalary);
1480+
Assert.Equal(11300, group[0].AvgSalaryDecimal);
1481+
Assert.Equal(1120000, group[0].MinSalary);
1482+
Assert.Equal(1140000, group[0].MaxSalary);
1483+
}
1484+
[Fact]
1485+
public void Group_API_Test1()
1486+
{
1487+
var ids = new[] { "200", "300" };
1488+
var dateOfMonths = new[] { 202111, 202110 };
1489+
var group = _virtualDbContext.Set<SysUserSalary>()
1490+
.Where(o => ids.Contains(o.UserId) && dateOfMonths.Contains(o.DateOfMonth))
1491+
.GroupBy(g => new { UId = g.UserId })
1492+
.Select(g => new
1493+
{
1494+
1495+
GroupUserId = g.Key.UId,
1496+
Count = g.Count(),
1497+
TotalSalary = g.Sum(o => o.Salary),
1498+
AvgSalary = g.Average(o => o.Salary),
1499+
AvgSalaryDecimal = g.Average(o => o.SalaryDecimal),
1500+
MinSalary = g.Min(o => o.Salary),
1501+
MaxSalary = g.Max(o => o.Salary)
1502+
}).OrderBy(o => o.TotalSalary).ToList();
1503+
Assert.Equal(2, group.Count);
1504+
Assert.Equal(2, group[0].Count);
1505+
Assert.Equal("200", group[0].GroupUserId);
1506+
Assert.Equal(2260000, group[0].TotalSalary);
1507+
Assert.Equal(1130000, group[0].AvgSalary);
1508+
Assert.Equal(11300, group[0].AvgSalaryDecimal);
1509+
Assert.Equal(1120000, group[0].MinSalary);
1510+
Assert.Equal(1140000, group[0].MaxSalary);
1511+
}
1512+
[Fact]
1513+
public void Group_API_Test2()
1514+
{
1515+
var ids = new[] { "200", "300" };
1516+
var dateOfMonths = new[] { 202111, 202110 };
1517+
var group = _virtualDbContext.Set<SysUserSalary>()
1518+
.Where(o => ids.Contains(o.UserId) && dateOfMonths.Contains(o.DateOfMonth))
1519+
.GroupBy(g => new { UId = g.UserId })
1520+
.Select(g => new
1521+
{
1522+
1523+
GroupUserId = g.Key.UId,
1524+
Count = g.Count(),
1525+
TotalSalary = g.Sum(o => o.Salary),
1526+
AvgSalary = g.Average(o => o.Salary),
1527+
AvgSalaryDecimal = g.Average(o => o.SalaryDecimal),
1528+
MinSalary = g.Min(o => o.Salary),
1529+
MaxSalary = g.Max(o => o.Salary)
1530+
}).OrderByDescending(o => o.TotalSalary).ToList();
1531+
Assert.Equal(2, group.Count);
1532+
Assert.Equal(2, group[0].Count);
1533+
Assert.Equal("300", group[0].GroupUserId);
1534+
Assert.Equal(2690000, group[0].TotalSalary);
1535+
Assert.Equal(1345000, group[0].AvgSalary);
1536+
Assert.Equal(13450, group[0].AvgSalaryDecimal);
1537+
Assert.Equal(1330000, group[0].MinSalary);
1538+
Assert.Equal(1360000, group[0].MaxSalary);
1539+
}
14831540
}
14841541
}

0 commit comments

Comments
 (0)