mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-04-05 17:37:58 +08:00
Add Demo
This commit is contained in:
parent
885d994100
commit
fc784b3a71
171
Src/Asp.Net/SqlServerTest/4_JoinQuery.cs
Normal file
171
Src/Asp.Net/SqlServerTest/4_JoinQuery.cs
Normal file
@ -0,0 +1,171 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using static OrmTest._4_JoinQuery;
|
||||||
|
|
||||||
|
namespace OrmTest
|
||||||
|
{
|
||||||
|
internal class _4_JoinQuery
|
||||||
|
{
|
||||||
|
public static void Init()
|
||||||
|
{
|
||||||
|
InitializeDatabase();
|
||||||
|
SyntaxSugar1();
|
||||||
|
SyntaxSugar2();
|
||||||
|
SyntaxSugar3();
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 使用语法糖1进行联表查询。
|
||||||
|
/// Performs a Join query using Syntax Sugar 1.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>查询结果列表。The list of query results.</returns>
|
||||||
|
public static List<ViewOrder2> SyntaxSugar1()
|
||||||
|
{
|
||||||
|
var db = DbHelper.GetNewDb();
|
||||||
|
var query = db.Queryable<Order>()
|
||||||
|
.LeftJoin<Custom>((o, cus) => o.CustomId == cus.Id)
|
||||||
|
.LeftJoin<OrderDetail>((o, cus, oritem) => o.Id == oritem.OrderId)
|
||||||
|
.Where(o => o.Id == 1)
|
||||||
|
.Select((o, cus, oritem) => new ViewOrder2 { Id = o.Id,Name=o.Name, CustomName = cus.Name })
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
return query;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 使用语法糖2进行联表查询。
|
||||||
|
/// Performs a Join query using Syntax Sugar 2.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>查询结果列表。The list of query results.</returns>
|
||||||
|
public static List<Order> SyntaxSugar2()
|
||||||
|
{
|
||||||
|
var db = DbHelper.GetNewDb();
|
||||||
|
var rightQueryable = db.Queryable<Custom>()
|
||||||
|
.LeftJoin<OrderDetail>((o, i) => o.Id == i.Id)
|
||||||
|
.Select(o => o);
|
||||||
|
|
||||||
|
var list = db.Queryable<Order>()
|
||||||
|
.LeftJoin(rightQueryable, (c, j) => c.CustomId == j.Id)
|
||||||
|
.Select(c => c)
|
||||||
|
.ToList();
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 使用语法糖3进行联表查询。
|
||||||
|
/// Performs a Join query using Syntax Sugar 3.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>查询结果列表。The list of query results.</returns>
|
||||||
|
public static List<ViewOrder2> SyntaxSugar3()
|
||||||
|
{
|
||||||
|
var db = DbHelper.GetNewDb();
|
||||||
|
var list = db.Queryable<Order, OrderItem, Custom>((o, i, c) => o.Id == i.OrderId && c.Id == o.CustomId)
|
||||||
|
.Select((o, i, c) => new ViewOrder2 { Id = o.Id, Name = o.Name, CustomName = c.Name })
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void InitializeDatabase()
|
||||||
|
{
|
||||||
|
// Initialize order data
|
||||||
|
// 初始化订单数据
|
||||||
|
var orders = new List<Order>
|
||||||
|
{
|
||||||
|
new Order { Id = 1, Name = "Order 1", CustomId = 1 },
|
||||||
|
new Order { Id = 2, Name = "Order 2", CustomId = 2 },
|
||||||
|
new Order { Id = 3, Name = "Order 3", CustomId = 1 },
|
||||||
|
};
|
||||||
|
|
||||||
|
// Initialize order details data
|
||||||
|
// 初始化订单详情数据
|
||||||
|
var orderDetails = new List<OrderDetail>
|
||||||
|
{
|
||||||
|
new OrderDetail { Id = 1, OrderId = 1 },
|
||||||
|
new OrderDetail { Id = 2, OrderId = 2 },
|
||||||
|
new OrderDetail { Id = 3, OrderId = 3 },
|
||||||
|
};
|
||||||
|
|
||||||
|
// Initialize customer data
|
||||||
|
// 初始化客户数据
|
||||||
|
var customers = new List<Custom>
|
||||||
|
{
|
||||||
|
new Custom { Id = 1, Name = "Customer 1" },
|
||||||
|
new Custom { Id = 2, Name = "Customer 2" },
|
||||||
|
new Custom { Id = 3, Name = "Customer 3" },
|
||||||
|
};
|
||||||
|
|
||||||
|
// Get database connection
|
||||||
|
// 获取数据库连接
|
||||||
|
var db = DbHelper.GetNewDb();
|
||||||
|
|
||||||
|
// Initialize database tables and truncate data
|
||||||
|
// 初始化数据库表并清空数据
|
||||||
|
db.CodeFirst.InitTables<Custom, OrderDetail, Order>();
|
||||||
|
db.DbMaintenance.TruncateTable<Custom, OrderDetail, Order>();
|
||||||
|
|
||||||
|
// Insert data into tables
|
||||||
|
// 向表中插入数据
|
||||||
|
db.Insertable(orders).ExecuteCommand();
|
||||||
|
db.Insertable(orderDetails).ExecuteCommand();
|
||||||
|
db.Insertable(customers).ExecuteCommand();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 订单实体类。
|
||||||
|
/// Order entity class.
|
||||||
|
/// </summary>
|
||||||
|
[SqlSugar.SugarTable("Order04")]
|
||||||
|
public class Order
|
||||||
|
{
|
||||||
|
[SqlSugar.SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
|
||||||
|
public int Id { get; set; }
|
||||||
|
public string Name { get; set; }
|
||||||
|
public int CustomId { get; set; }
|
||||||
|
// 其他订单相关属性...
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 订单详情实体类。
|
||||||
|
/// Order detail entity class.
|
||||||
|
/// </summary>
|
||||||
|
[SqlSugar.SugarTable("OrderDetail04")]
|
||||||
|
public class OrderDetail
|
||||||
|
{
|
||||||
|
[SqlSugar.SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
|
||||||
|
public int Id { get; set; }
|
||||||
|
public int OrderId { get; set; }
|
||||||
|
// 其他订单详情相关属性...
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 客户实体类。
|
||||||
|
/// Customer entity class.
|
||||||
|
/// </summary>
|
||||||
|
[SqlSugar.SugarTable("Custom04")]
|
||||||
|
public class Custom
|
||||||
|
{
|
||||||
|
[SqlSugar.SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
|
||||||
|
public int Id { get; set; }
|
||||||
|
public string Name { get; set; }
|
||||||
|
// 其他客户相关属性...
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 类1实体类。
|
||||||
|
/// Class1 entity class.
|
||||||
|
/// </summary>
|
||||||
|
public class ViewOrder2
|
||||||
|
{
|
||||||
|
public int Id { get; set; }
|
||||||
|
public string Name { get; set; }
|
||||||
|
public string CustomName { get; set; }
|
||||||
|
// 其他类1相关属性...
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -11,7 +11,7 @@ namespace OrmTest
|
|||||||
_1_CodeFirst.Init();
|
_1_CodeFirst.Init();
|
||||||
_2_DbFirst.Init();
|
_2_DbFirst.Init();
|
||||||
_3_EasyQuery.Init();
|
_3_EasyQuery.Init();
|
||||||
|
_4_JoinQuery.Init();
|
||||||
Console.ReadKey();
|
Console.ReadKey();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -66,6 +66,7 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="1_CodeFirst.cs" />
|
<Compile Include="1_CodeFirst.cs" />
|
||||||
<Compile Include="2_DbFirst.cs" />
|
<Compile Include="2_DbFirst.cs" />
|
||||||
|
<Compile Include="4_JoinQuery.cs" />
|
||||||
<Compile Include="UnitTest\Description.cs" />
|
<Compile Include="UnitTest\Description.cs" />
|
||||||
<Compile Include="3_EasyQuery.cs" />
|
<Compile Include="3_EasyQuery.cs" />
|
||||||
<Compile Include="UserTestCases\Cases\OldDemo\Demo2_Updateable.cs" />
|
<Compile Include="UserTestCases\Cases\OldDemo\Demo2_Updateable.cs" />
|
||||||
|
Loading…
Reference in New Issue
Block a user