3.2 跨库查询之一对多 [Tenant("db1")]//指定是db1 (OrderItem类设置为 db2) public class Order { [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] public int Id { get; set; } public string Name { get; set; } public decimal Price { get; set; } [SugarColumn(IsNullable = true)] public DateTime CreateTime { get; set; } [SugarColumn(IsNullable = true)] public int CustomId { get; set; } [Navigate(NavigateType.OneToMany, nameof(OrderItem.OrderId))]// public List<OrderItem> Items { get; set; } } var list = db.QueryableWithAttr<Order>() .Includes(z => z.Items)//跨库一对多 .ToList();3.3 跨库查询之多对多我们将3个表扔进3个不同的库里面
【.NET 6 跨服务器联表查询】 var db = new SqlSugarClient(new List<ConnectionConfig>() { new ConnectionConfig(){ConfigId="A",DbType=DbType.Sqlite,ConnectionString="DataSource=/A_DB.sqlite",IsAutoCloseConnection=true}, new ConnectionConfig(){ConfigId="B",DbType=DbType.Sqlite,ConnectionString="DataSource=/B_DB.sqlite",IsAutoCloseConnection=true }, new ConnectionConfig(){ConfigId="AB",DbType=DbType.Sqlite,ConnectionString="DataSource=/AB_DB.sqlite",IsAutoCloseConnection=true } });p 实体
[Tenant("A")]//指定为A库 public partial class OperatorInfo { /// <summary> /// 主键 /// </summary> [SugarColumn(IsPrimaryKey = true)] public int id { get; set; } /// <summary> /// 姓名 /// </summary> public string realname { get; set; } /// <summary> /// 多角色 /// </summary> [Navigate(typeof(OptRole), nameof(OptRole.operId), nameof(OptRole.roleId))]//配置导航 public List<Role> Roles { get; set; } } [Tenant("B")]//指定为B库 public partial class Role { /// <summary> /// 角色 /// </summary> [SugarColumn(IsPrimaryKey = true )] public int id { get; set; } /// <summary> /// 角色名称 /// </summary> public string name { get; set; } } [Tenant("AB")]//指定为AB库 public partial class OptRole { /// <summary> /// /// </summary> [SugarColumn(IsPrimaryKey = true)] public int id { get; set; } /// <summary> /// /// </summary> public int operId { get; set; } /// <summary> /// /// </summary> public int roleId { get; set; } }//3个库3个表进行多对多查询var x=db.QueryableWithAttr<OperatorInfo>().Includes(z => z.Roles).ToList();
经验总结扩展阅读
- 不安装运行时运行 .NET 程序 - NativeAOT
- 有趣实验 .NET下数据库的负载均衡(续)
- .Net CLR GC plan_phase二叉树和Brick_table
- 【.NET 6+Loki+Grafana】实现轻量级日志可视化服务功能
- .NET 开源项目推荐之 直播控制台解决方案 Macro Deck
- .Net WebApi 中的 FromBody FromForm FromQuery FromHeader FromRoute
- 18 基于.NetCore开发博客项目 StarBlog - 实现本地Typora文章打包上传
- gin项目部署到服务器并后台启动
- .net程序员的android studio 初体验 (环境设置2022年10月)
- 学习ASP.NET Core Blazor编程系列五——列表页面