test/02_Data/Data.Adapter.MySql.Test/GroupingTests.cs
(开头部分) 4KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using Data.Common.Test.Domain.Article;
using Microsoft.Extensions.DependencyInjection;
using Xunit;
using Xunit.Abstractions;
namespace Data.Adapter.MySql.Test
{
public class GroupingTests : BaseTest
{
private readonly IArticleRepository _repository;
public GroupingTests(ITestOutputHelper output) : base(output)
{
_repository = _serviceProvider.GetService<IArticleRepository>();
}
[Fact]
public void ToListTest1()
{
var query = _repository.Find().GroupBy(m => new { m.Title, m.Deleted })
.Select(m => new
{
Sum = m.Sum(n => n.Id),
m.Key.Title
});
var sql = query.ToListSql();
Assert.Equal("SELECT SUM(`Id`) AS `Sum`,`Title` AS `Title` FROM `Article` WHERE `Deleted` = 0 GROUP BY `Title`, `Deleted`", sql);
}
[Fact]
public void ToListTest2()
{
var query = _repository.Find()
.GroupBy(m => new { m.Deleted })
.Having(m => m.Sum(x => x.Id) > 3)
.Select(m => new { Sum = m.Sum(n => n.Id) });
var sql = query.ToListSql();
Assert.Equal("SELECT SUM(`Id`) AS `Sum` FROM `Article` WHERE `Deleted` = 0 GROUP BY `Deleted` HAVING SUM(`Id`) > @P1", sql);
sql = query.ToListSqlNotUseParameters();
Assert.Equal("SELECT SUM(`Id`) AS `Sum` FROM `Article` WHERE `Deleted` = 0 GROUP BY `Deleted` HAVING SUM(`Id`) > 3", sql);
}
[Fact]
public void ToListTest3()
{
var query = _repository.Find()
.Where(m => m.Id > 5)
.GroupBy(m => new { m.Deleted })
.Having(m => m.Sum(x => x.Id) > 3)
.OrderBy(m => m.Sum(x => x.Id))
.Select(m => new
{
Sum = m.Sum(n => n.Id),
});
var sql = query.ToListSql();
Assert.Equal("SELECT SUM(`Id`) AS `Sum` FROM `Article` WHERE `Id` > @P1 AND `Deleted` = 0 GROUP BY `Deleted` HAVING SUM(`Id`) > @P2 ORDER BY SUM(`Id`) ASC", sql);
后面还有 65 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
