diff --git a/Src/Asp.NetCore2/OceanBaseForOracleTest/Config.cs b/Src/Asp.NetCore2/OceanBaseForOracleTest/Config.cs new file mode 100644 index 000000000..e5c404d23 --- /dev/null +++ b/Src/Asp.NetCore2/OceanBaseForOracleTest/Config.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OrmTest +{ + /// + /// Setting up the database name does not require you to create the database + /// 设置好数据库名不需要你去手动建库 + /// + public class Config + { + /// + /// Account have permission to create database + /// 用有建库权限的数据库账号 + /// + public static string ConnectionString = "Driver={OceanBase ODBC 2.0 Driver};Server=172.19.9.9;Port=2883;Database=XIR_TRD;User=XIR_TRD@Xpia2C6G#obtest:1650773680;Password=aaAA11%%;Option=3;"; + /// + /// Account have permission to create database + /// 用有建库权限的数据库账号 + /// + public static string ConnectionString2 = "Driver={GBase ODBC DRIVER (64-Bit)};Host=localhost;Service=19088;Server=gbase01;Database=testdb;Protocol=onsoctcp;Uid=gbasedbt;Pwd=GBase123;Db_locale=zh_CN.utf8;Client_locale=zh_CN.utf8"; + /// + /// Account have permission to create database + /// 用有建库权限的数据库账号 + /// + public static string ConnectionString3 = "Driver={GBase ODBC DRIVER (64-Bit)};Host=localhost;Service=19088;Server=gbase01;Database=testdb;Protocol=onsoctcp;Uid=gbasedbt;Pwd=GBase123;Db_locale=zh_CN.utf8;Client_locale=zh_CN.utf8"; + } +} diff --git a/Src/Asp.NetCore2/OceanBaseForOracleTest/Models/AttributeTable.cs b/Src/Asp.NetCore2/OceanBaseForOracleTest/Models/AttributeTable.cs new file mode 100644 index 000000000..c1a43ad12 --- /dev/null +++ b/Src/Asp.NetCore2/OceanBaseForOracleTest/Models/AttributeTable.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; + +namespace OrmTest +{ + [Table("MyAttributeTable")] + //[SugarTable("CustomAttributeTable")] + public class AttributeTable + { + + [Key] + //[SugarColumn(IsPrimaryKey =true)] + public string Id { get; set; } + public string Name { get; set; } + } +} diff --git a/Src/Asp.NetCore2/OceanBaseForOracleTest/Models/CarType.cs b/Src/Asp.NetCore2/OceanBaseForOracleTest/Models/CarType.cs new file mode 100644 index 000000000..00dc12710 --- /dev/null +++ b/Src/Asp.NetCore2/OceanBaseForOracleTest/Models/CarType.cs @@ -0,0 +1,7 @@ +namespace OrmTest +{ + public class CarType + { + public bool State { get; set; } + } +} \ No newline at end of file diff --git a/Src/Asp.NetCore2/OceanBaseForOracleTest/Models/Custom.cs b/Src/Asp.NetCore2/OceanBaseForOracleTest/Models/Custom.cs new file mode 100644 index 000000000..3b8871c57 --- /dev/null +++ b/Src/Asp.NetCore2/OceanBaseForOracleTest/Models/Custom.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OrmTest +{ + public class Custom + { + public int Id { get; set; } + public string Name { get; set; } + } +} diff --git a/Src/Asp.NetCore2/OceanBaseForOracleTest/Models/EntityMapper.cs b/Src/Asp.NetCore2/OceanBaseForOracleTest/Models/EntityMapper.cs new file mode 100644 index 000000000..b597012fb --- /dev/null +++ b/Src/Asp.NetCore2/OceanBaseForOracleTest/Models/EntityMapper.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using SqlSugar; +namespace OrmTest +{ + [SugarTable("MyEntityMapper")] + public class EntityMapper + { + [SugarColumn(ColumnName ="MyName")] + public string Name { get; set; } + } +} diff --git a/Src/Asp.NetCore2/OceanBaseForOracleTest/Models/Mapper.cs b/Src/Asp.NetCore2/OceanBaseForOracleTest/Models/Mapper.cs new file mode 100644 index 000000000..8d7991d6c --- /dev/null +++ b/Src/Asp.NetCore2/OceanBaseForOracleTest/Models/Mapper.cs @@ -0,0 +1,54 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OrmTest +{ + [SugarTable("OrderDetail")] + public class OrderItemInfo + { + [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; } + [SugarColumn(IsIgnore = true)] + public Order Order { get; set; } + } + [SugarTable("Order")] + public class OrderInfo + { + [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public int Id { get; set; } + public string Name { get; set; } + [SugarColumn(IsIgnore = true)] + public List Items { get; set; } + } + public class ABMapping + { + [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public int AId { get; set; } + public int BId { get; set; } + [SugarColumn(IsIgnore = true)] + public A A { get; set; } + [SugarColumn(IsIgnore = true)] + public B B { get; set; } + + } + public class A + { + [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public int Id { get; set; } + public string Name { get; set; } + } + public class B + { + [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public int Id { get; set; } + public string Name { get; set; } + } +} diff --git a/Src/Asp.NetCore2/OceanBaseForOracleTest/Models/MyCustomAttributeTable.cs b/Src/Asp.NetCore2/OceanBaseForOracleTest/Models/MyCustomAttributeTable.cs new file mode 100644 index 000000000..11359d062 --- /dev/null +++ b/Src/Asp.NetCore2/OceanBaseForOracleTest/Models/MyCustomAttributeTable.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; + +namespace OrmTest +{ + [Table("CustomAttributeTable")] + //[SugarTable("CustomAttributeTable")] + public class MyCustomAttributeTable + { + + [Key] + //[SugarColumn(IsPrimaryKey =true)] + public string Id { get; set; } + public string Name { get; set; } + } +} diff --git a/Src/Asp.NetCore2/OceanBaseForOracleTest/Models/Order.cs b/Src/Asp.NetCore2/OceanBaseForOracleTest/Models/Order.cs new file mode 100644 index 000000000..cf6b11839 --- /dev/null +++ b/Src/Asp.NetCore2/OceanBaseForOracleTest/Models/Order.cs @@ -0,0 +1,25 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace OrmTest +{ + [SugarTable("ORDERTEST")] + public class Order + { + [SugarColumn(IsPrimaryKey = true)] + public decimal 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 decimal CustomId { get; set; } + + [SugarColumn(IsIgnore = true)] + public string Idname { get; set; } + } +} diff --git a/Src/Asp.NetCore2/OceanBaseForOracleTest/Models/OrderItem.cs b/Src/Asp.NetCore2/OceanBaseForOracleTest/Models/OrderItem.cs new file mode 100644 index 000000000..ae3262c7c --- /dev/null +++ b/Src/Asp.NetCore2/OceanBaseForOracleTest/Models/OrderItem.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace OrmTest +{ + [SqlSugar.SugarTable("OrderDetail")] + 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; } + } +} diff --git a/Src/Asp.NetCore2/OceanBaseForOracleTest/Models/TestTree.cs b/Src/Asp.NetCore2/OceanBaseForOracleTest/Models/TestTree.cs new file mode 100644 index 000000000..b8250828a --- /dev/null +++ b/Src/Asp.NetCore2/OceanBaseForOracleTest/Models/TestTree.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OrmTest +{ + public class TestTree + { + [SqlSugar.SugarColumn(ColumnDataType = "hierarchyid")] + public string TreeId { get; set; } + [SqlSugar.SugarColumn(ColumnDataType = "Geography")] + public string GId { get; set; } + public string Name { get; set; } + } +} diff --git a/Src/Asp.NetCore2/OceanBaseForOracleTest/Models/Tree.cs b/Src/Asp.NetCore2/OceanBaseForOracleTest/Models/Tree.cs new file mode 100644 index 000000000..d2878de64 --- /dev/null +++ b/Src/Asp.NetCore2/OceanBaseForOracleTest/Models/Tree.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OrmTest +{ + public class Tree + { + [SqlSugar.SugarColumn(IsPrimaryKey =true)] + public int Id { get; set; } + public string Name { get; set; } + public int ParentId { get; set; } + [SqlSugar.SugarColumn(IsIgnore = true)] + public Tree Parent { get; set; } + [SqlSugar.SugarColumn(IsIgnore = true)] + public List Child { get; set; } + } +} diff --git a/Src/Asp.NetCore2/OceanBaseForOracleTest/Models/ViewOrder.cs b/Src/Asp.NetCore2/OceanBaseForOracleTest/Models/ViewOrder.cs new file mode 100644 index 000000000..fcd465747 --- /dev/null +++ b/Src/Asp.NetCore2/OceanBaseForOracleTest/Models/ViewOrder.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OrmTest +{ + public class ViewOrder:Order + { + public string CustomName { get; set; } + } +} diff --git a/Src/Asp.NetCore2/OceanBaseForOracleTest/OceanBaseForOracleTest.csproj b/Src/Asp.NetCore2/OceanBaseForOracleTest/OceanBaseForOracleTest.csproj new file mode 100644 index 000000000..0463e6217 --- /dev/null +++ b/Src/Asp.NetCore2/OceanBaseForOracleTest/OceanBaseForOracleTest.csproj @@ -0,0 +1,20 @@ + + + + Exe + net6.0 + enable + enable + + + + + + + + + + + + + diff --git a/Src/Asp.NetCore2/OceanBaseForOracleTest/Program.cs b/Src/Asp.NetCore2/OceanBaseForOracleTest/Program.cs new file mode 100644 index 000000000..5836285f4 --- /dev/null +++ b/Src/Asp.NetCore2/OceanBaseForOracleTest/Program.cs @@ -0,0 +1,54 @@ +using OrmTest; +using SqlSugar; +using static Npgsql.Replication.PgOutput.Messages.RelationMessage; + +namespace OceanBaseForOracle +{ + internal class Program + { + static void Main(string[] args) + { + Console.WriteLine(""); + Console.WriteLine("#### MasterSlave Start ####"); + SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() + { + ConnectionString = Config.ConnectionString,//Master Connection + DbType = DbType.OceanBaseForOracle, + InitKeyType = InitKeyType.Attribute, + IsAutoCloseConnection = true + }); + db.Aop.OnLogExecuted = (s, p) => + { + Console.WriteLine(db.Ado.Connection.ConnectionString); + }; + Console.WriteLine("Master:"); + db.Insertable(new Order() { Id=109,Name = "abc", CustomId = 1, CreateTime = DateTime.Now }).ExecuteCommand(); + db.Deleteable().Where(m => m.Id == 109).ExecuteCommand(); + db.Updateable().SetColumns(m => new Order + { + Name = "我是修改" + }).Where(m => m.Id == 2).ExecuteCommand(); + Console.WriteLine("Slave:"); + //var s = db.Queryable().First(); + //var list = db.Queryable().Select(m => new Order + //{ + // Id = m.Id, + // CreateTime = m.CreateTime, + // CustomId = m.CustomId, + // Idname = SqlFunc.Subqueryable().Where(s => s.Id == 2).Select(s => s.Name), + // Name = m.Name, + // Price = m.Price, + //}).ToList(); + //var grouplist = db.Queryable().OrderByDescending(m=>m.Id).GroupBy(m=>new {m.Id,m.Name}).SelectMergeTable(m => new Order + //{ + // Id = m.Id, + // Name = m.Name, + // CreateTime= SqlFunc.AggregateMin(m.CreateTime), + // Price= SqlFunc.AggregateSum(m.Price), + //}).OrderBy(m=>m.Id).Where(m=>m.Id==1).ToList(); + //var orderlist = db.Queryable().OrderBy(m => new { m.Id, m.Name }).ToList(); + var pageList = db.Queryable().OrderBy(m=>m.Id).ToOffsetPage(1, 3); + Console.WriteLine("#### MasterSlave End ####"); + } + } +} \ No newline at end of file diff --git a/Src/Asp.NetCore2/SqlSugarCore.sln b/Src/Asp.NetCore2/SqlSugarCore.sln index d78168a23..1b4186758 100644 --- a/Src/Asp.NetCore2/SqlSugarCore.sln +++ b/Src/Asp.NetCore2/SqlSugarCore.sln @@ -62,6 +62,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HGTest", "HGTest\HGTest.csp EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SqlSugar.OceanBaseForOracleCore", "SqlSugar.OceanBaseForOracle\SqlSugar.OceanBaseForOracleCore.csproj", "{7CEB3DFE-8337-4B83-AE6A-D159D73E3CD3}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OceanBaseForOracleTest", "OceanBaseForOracleTest\OceanBaseForOracleTest.csproj", "{5E119B71-D17F-42BA-8437-A9F5B941CFD7}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -384,6 +386,18 @@ Global {7CEB3DFE-8337-4B83-AE6A-D159D73E3CD3}.Release|ARM32.Build.0 = Release|Any CPU {7CEB3DFE-8337-4B83-AE6A-D159D73E3CD3}.Release|x86.ActiveCfg = Release|Any CPU {7CEB3DFE-8337-4B83-AE6A-D159D73E3CD3}.Release|x86.Build.0 = Release|Any CPU + {5E119B71-D17F-42BA-8437-A9F5B941CFD7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5E119B71-D17F-42BA-8437-A9F5B941CFD7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5E119B71-D17F-42BA-8437-A9F5B941CFD7}.Debug|ARM32.ActiveCfg = Debug|Any CPU + {5E119B71-D17F-42BA-8437-A9F5B941CFD7}.Debug|ARM32.Build.0 = Debug|Any CPU + {5E119B71-D17F-42BA-8437-A9F5B941CFD7}.Debug|x86.ActiveCfg = Debug|Any CPU + {5E119B71-D17F-42BA-8437-A9F5B941CFD7}.Debug|x86.Build.0 = Debug|Any CPU + {5E119B71-D17F-42BA-8437-A9F5B941CFD7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5E119B71-D17F-42BA-8437-A9F5B941CFD7}.Release|Any CPU.Build.0 = Release|Any CPU + {5E119B71-D17F-42BA-8437-A9F5B941CFD7}.Release|ARM32.ActiveCfg = Release|Any CPU + {5E119B71-D17F-42BA-8437-A9F5B941CFD7}.Release|ARM32.Build.0 = Release|Any CPU + {5E119B71-D17F-42BA-8437-A9F5B941CFD7}.Release|x86.ActiveCfg = Release|Any CPU + {5E119B71-D17F-42BA-8437-A9F5B941CFD7}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE