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 积分,解读结果公开显示在下面。

还没有人解读过这个文件。