diff --git a/Src/Asp.NetCore2/SqliteTest/UnitTest/CrossDatabase01.cs b/Src/Asp.NetCore2/SqliteTest/UnitTest/CrossDatabase01.cs new file mode 100644 index 000000000..3e4c1f9d4 --- /dev/null +++ b/Src/Asp.NetCore2/SqliteTest/UnitTest/CrossDatabase01.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace OrmTest +{ + public class CrossDatabase01 + { + public static void Init() + { + + } + } +} diff --git a/Src/Asp.NetCore2/SqliteTest/UnitTest/CrossDatabase02.cs b/Src/Asp.NetCore2/SqliteTest/UnitTest/CrossDatabase02.cs new file mode 100644 index 000000000..9a7d57078 --- /dev/null +++ b/Src/Asp.NetCore2/SqliteTest/UnitTest/CrossDatabase02.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace OrmTest +{ + public class CrossDatabase02 + { + public static void Init() + { + + } + } +} diff --git a/Src/Asp.NetCore2/SqliteTest/UnitTest/CrossDatabase03.cs b/Src/Asp.NetCore2/SqliteTest/UnitTest/CrossDatabase03.cs new file mode 100644 index 000000000..31d56f996 --- /dev/null +++ b/Src/Asp.NetCore2/SqliteTest/UnitTest/CrossDatabase03.cs @@ -0,0 +1,71 @@ +using System; +using System.Collections.Generic; +using System.Text; +using SqlSugar; +namespace OrmTest +{ + public class CrossDatabase03 + { + public static void Init() + { + var db = new SqlSugarClient(new List() + { + new ConnectionConfig(){ConfigId="OrderDb",DbType=DbType.Sqlite,ConnectionString="DataSource=/Db_OrderDb.sqlite",IsAutoCloseConnection=true}, + new ConnectionConfig(){ConfigId="OrderItemDb",DbType=DbType.Sqlite,ConnectionString="DataSource=/Db_OrderItemDb.sqlite",IsAutoCloseConnection=true } + }); + + db.GetConnection("OrderDb").CodeFirst.InitTables(); + db.GetConnection("OrderItemDb").CodeFirst.InitTables(); + + db.GetConnection("OrderDb").DbMaintenance.TruncateTable(); + db.GetConnection("OrderItemDb").DbMaintenance.TruncateTable(); + + db.GetConnection("OrderDb").Insertable(new Order() { Id=1, CreateTime=DateTime.Now, Name="a", Price=10, CustomId=1 }).ExecuteCommand(); + db.GetConnection("OrderItemDb").Insertable(new OrderItem() { OrderId = 1, CreateTime = DateTime.Now , Price=10 }).ExecuteCommand(); + + var list=db.QueryableWithAttr() + .CrossQueryWithAttr() + .Includes(z => z.Order) + .ToList(); + + Console.WriteLine("OrderDb"); + foreach (var item in db.GetConnection("OrderDb").DbMaintenance.GetTableInfoList(false)) + { + Console.WriteLine(item.Name); + } + Console.WriteLine("OrderItemDb"); + foreach (var item in db.GetConnection("OrderItemDb").DbMaintenance.GetTableInfoList(false)) + { + Console.WriteLine(item.Name); + } + } + [Tenant("OrderDb")] + 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 Items { get; set; } + } + [SqlSugar.SugarTable("OrderDetail")] + [Tenant("OrderItemDb")] + public class OrderItem + { + [SqlSugar.SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public int ItemId { get; set; } + public int OrderId { get; set; } + public decimal? Price { get; set; } + [SqlSugar.SugarColumn(IsNullable = true)] + public DateTime? CreateTime { get; set; } + [Navigate(NavigateType.OneToOne,nameof(OrderId))] + public Order Order { get; set; } + } + } +} diff --git a/Src/Asp.NetCore2/SqliteTest/UnitTest/Main.cs b/Src/Asp.NetCore2/SqliteTest/UnitTest/Main.cs index a64c55435..ed745d655 100644 --- a/Src/Asp.NetCore2/SqliteTest/UnitTest/Main.cs +++ b/Src/Asp.NetCore2/SqliteTest/UnitTest/Main.cs @@ -31,6 +31,7 @@ namespace OrmTest } public static void Init() { + CrossDatabase03.Init(); ULock.Init(); UNavQuery01.Init(); UCustom012.Init();