From 0e6fe689ec63905107b0442e35fa2f464fd7a301 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Tue, 21 Nov 2023 23:58:20 +0800 Subject: [PATCH] Add unit test --- .../UserTestCases/UnitTest/Main.cs | 4 +- .../UserTestCases/UnitTest/UnitSelectN.cs | 108 ++++++++++++++++++ 2 files changed, 111 insertions(+), 1 deletion(-) create mode 100644 Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitSelectN.cs diff --git a/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Main.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Main.cs index 98a55121d..86a35983b 100644 --- a/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Main.cs +++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Main.cs @@ -1,4 +1,5 @@ -using SqlSeverTest.UserTestCases; +using Demo; +using SqlSeverTest.UserTestCases; using SqlSugar; using System; using System.Collections.Generic; @@ -31,6 +32,7 @@ namespace OrmTest } public static void Init() { + UnitSelectN.Init(); UnitSubqueryN.Init(); Unitadfasfa.Init(); UnitOneToMany1231123.Init(); diff --git a/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitSelectN.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitSelectN.cs new file mode 100644 index 000000000..be8c75875 --- /dev/null +++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitSelectN.cs @@ -0,0 +1,108 @@ +using OrmTest; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Demo +{ + /// + /// 数据库帮助类 + /// + public class UnitSelectN + { + + public static void Init() + { + var Db = NewUnitTest.Db; + Db.CodeFirst.InitTables(typeof(UpFile), typeof(SpShangPin)); + + int total = 0; + Test0(Db, total); + total = Test1(Db, total); + } + private static int Test0(SqlSugarClient Db, int total) + { + var list = Db.Queryable() + + .Select(s => new ShangPinView() + { + + Image = new UploadFile() { Id = s.FileId, Url = s.Image.FilePath } + + }).ToList(); + return total; + } + private static int Test1(SqlSugarClient Db, int total) + { + var list = Db.Queryable() + .Includes(s => s.Image) + .Select(s => new ShangPinView() + { + Id = s.Id, + Name = s.Name, + Price = s.Price, + + Image = new UploadFile() { Id = s.FileId, Url = s.Image.FilePath }, + FileName = s.Image.FilePath, + File = s.Image, + //Image = s.Image == null ? null : new UploadFile() { Id = s.FileId, Url = s.Image == null ? "" : s.Image.FilePath } + }).ToPageList(1, 2, ref total); + return total; + } + } + + /// + /// 商品表 + /// + public class SpShangPin : Base + { + public string Name { get; set; } + public int Price { get; set; } + + public Guid FileId { get; set; } + + [Navigate(NavigateType.OneToOne, nameof(FileId), nameof(UpFile.Id))] + public UpFile Image { get; set; } + } + + /// + /// 上传文件表 + /// + public class UpFile : Base + { + public string FileName { get; set; } + public string FilePath { get; set; } + } + + /// + /// 表公共字段 + /// + public class Base + { + [SugarColumn(IsPrimaryKey = true)] + public Guid Id { get; set; } + public DateTime AddTime { get; set; } + public DateTime UpdateTime { get; set; } + public bool IsDel { get; set; } + } + + public class ShangPinView + { + public Guid Id { get; set; } + public string Name { get; set; } + public int Price { get; set; } + public UploadFile Image { get; set; } + public UpFile File { get; set; } + public string FileName { get; set; } + } + + public class UploadFile + { + [SugarColumn(IsPrimaryKey = true)] + public Guid Id { get; set; } + public string Url { get; set; } + } +}