Files
Api/DouyinApi.Tests/Repository_Test/OrmTest.cs
2025-11-04 21:09:16 +08:00

73 lines
2.6 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System;
using Autofac;
using DouyinApi.Common.Extensions;
using DouyinApi.IRepository.Base;
using DouyinApi.Model.Models;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Math;
using SqlSugar;
using Xunit;
using Xunit.Abstractions;
namespace DouyinApi.Tests;
public class OrmTest
{
private readonly ITestOutputHelper _testOutputHelper;
private readonly IBaseRepository<BlogArticle> _baseRepository;
DI_Test dI_Test = new DI_Test();
public OrmTest(ITestOutputHelper testOutputHelper)
{
_testOutputHelper = testOutputHelper;
var container = dI_Test.DICollections();
_baseRepository = container.Resolve<IBaseRepository<BlogArticle>>();
_baseRepository.Db.Aop.OnLogExecuting = (sql, p) =>
{
_testOutputHelper.WriteLine("");
_testOutputHelper.WriteLine("==================FullSql=====================", "", new string[] { sql.GetType().ToString(), GetParas(p), "【SQL语句】" + sql });
_testOutputHelper.WriteLine("【SQL语句】" + sql);
_testOutputHelper.WriteLine(GetParas(p));
_testOutputHelper.WriteLine("==============================================");
_testOutputHelper.WriteLine("");
};
}
private static string GetParas(SugarParameter[] pars)
{
string key = "【SQL参数】";
foreach (var param in pars)
{
key += $"{param.ParameterName}:{param.Value}\n";
}
return key;
}
[Fact]
public void MultiTables()
{
var sql = _baseRepository.Db.Queryable<BlogArticle>()
.AS($@"{nameof(BlogArticle)}_TenantA")
.ToSqlString();
//_testOutputHelper.WriteLine(sql);
_baseRepository.Db.MappingTables.Add(nameof(BlogArticle), $@"{nameof(BlogArticle)}_TenantA");
var query = _baseRepository.Db.Queryable<BlogArticle>()
.LeftJoin<BlogArticleComment>((a, c) => a.bID == c.bID);
// query.QueryBuilder.AsTables.AddOrModify(nameof(BlogArticle), $@"{nameof(BlogArticle)}_TenantA");
//query.QueryBuilder.AsTables.AddOrModify(nameof(BlogArticleComment), $@"{nameof(BlogArticleComment)}_TenantA");
// query.QueryBuilder.AsTables.AddOrModify(nameof(BlogArticleComment), $@"{nameof(BlogArticleComment)}_TenantA");
// query.QueryBuilder.AsTables.AddOrModify(nameof(SysUserInfo), $@"{nameof(SysUserInfo)}_TenantA");
sql = query.ToSqlString();
_testOutputHelper.WriteLine(sql);
sql = _baseRepository.Db.Deleteable<BlogArticle>().ToSqlString();
_testOutputHelper.WriteLine(sql);
}
}