using System; using System.Collections.Generic; using System.Linq; using System.Text; using SqlSugar; using SqlSugarDemo; namespace OrmTest { public class CrossDatabase02 { public static void Init() { var db = new SqlSugarClient(new List() { new ConnectionConfig(){ConfigId="A",DbType=DbType.SqlServer,ConnectionString="server=.;uid=sa;pwd=sasa;database=SQLSUGAR4XTEST",IsAutoCloseConnection=true}, new ConnectionConfig(){ConfigId="B",DbType=DbType.SqlServer,ConnectionString="server=.;uid=sa;pwd=sasa;database=SQLSUGAR4XTEST2",IsAutoCloseConnection=true }, new ConnectionConfig(){ConfigId="AB",DbType=DbType.SqlServer,ConnectionString="server=.;uid=sa;pwd=sasa;database=SQLSUGAR4XTEST3",IsAutoCloseConnection=true } }); db.GetConnection("A").CodeFirst.InitTables(); db.GetConnection("B").CodeFirst.InitTables(); db.GetConnection("AB").CodeFirst.InitTables(); db.GetConnection("A").DbMaintenance.TruncateTable(); db.GetConnection("B").DbMaintenance.TruncateTable(); db.GetConnection("AB").DbMaintenance.TruncateTable(); db.GetConnection("A").Insertable(new OperatorInfo() { id=10, realname="A"}).ExecuteCommand(); db.GetConnection("B").Insertable(new Role() { id=101, name="B"}).ExecuteCommand(); db.GetConnection("AB").Insertable(new OptRole() { id=1, operId=10, roleId=101}).ExecuteCommand(); var x=db.QueryableWithAttr() //.CrossQueryWithAttr() .Includes(z => z.Roles).ToList(); if (x.First().Roles.Count == 0) { throw new Exception("unit error"); } db.Aop.OnLogExecuting = (s1, p1) => Console.WriteLine(s1); var x2 = db.QueryableWithAttr() .Where(it => it.Roleinfo.id == 101).ToList(); var x3 = db.QueryableWithAttr() .LeftJoin((x1, y1) => x1.roleId == y1.id).ToSql(); } /// /// 描述: /// 作者:synjones /// 时间:2022-04-20 21:30:28 /// [SugarTable("unit_operatorinfo8")] [Tenant("A")] public partial class OperatorInfo { /// /// 主键 /// [SugarColumn(IsPrimaryKey = true)] public int id { get; set; } /// /// 姓名 /// public string realname { get; set; } /// /// 多角色 /// [Navigate(typeof(OptRole), nameof(OptRole.operId), nameof(OptRole.roleId))]//名字换 public List Roles { get; set; } } /// /// 描述: /// 作者:synjones /// 时间:2022-04-20 21:30:28 /// [SugarTable("unit_role18")] [Tenant("B")] public partial class Role { /// /// 角色 /// [SugarColumn(IsPrimaryKey = true )] public int id { get; set; } /// /// 角色名称 /// public string name { get; set; } } /// /// 描述: /// 作者:synjones /// 时间:2022-04-21 14:35:09 /// [SugarTable("unit_operator_role8")] [Tenant("AB")] public partial class OptRole { /// /// /// [SugarColumn(IsPrimaryKey = true)] public int id { get; set; } /// /// /// public int operId { get; set; } /// /// /// public int roleId { get; set; } [Navigate(NavigateType.OneToOne,nameof(roleId))] public Role Roleinfo { get; set; } } } }