From a9dea00f900b17e0881e0a71774f627aa32abbbe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9E=9C=E7=B3=96=E7=BD=91?= <610262374@qq.com>
Date: Sun, 10 Oct 2021 22:00:50 +0800
Subject: [PATCH] Create README.md
---
README.md | 395 +++++-------------------------------------------------
1 file changed, 34 insertions(+), 361 deletions(-)
diff --git a/README.md b/README.md
index b2738298c..1e2e7265f 100644
--- a/README.md
+++ b/README.md
@@ -1,374 +1,47 @@
+
🍬SqlSugar
+
-## 👨🎓果糖大数据科技(南通)有限公司(永久免费开源) ##
-公司地址:南通太阳晶城大厦3幢125室
-
-| qq | 微信 | Email | QQ Group |
-| ---------| ---------| ---------| ---------|
-| 610262374 | sabimao | 610262374@qq.com | 225982985 |
-
- 服务项目:接收项目外包等服务(高级程序员 & 需求分析 & 软件架构师),技术咨询,技术顾问
-
-## 👮♀️中文文档:
-
- 世界上最简单的ORM,只需要配置连接字符串,F5运行控制台自动建库建表运行DEMO
-
-
地址: http://donet5.com/Home/Doc
+SqlSugar ORM is a library providing Object/Relational Mapping (ORM) support to applications, libraries, and frameworks.
-# 🕵️♀️English documents
-
-Using SqlSugar is very simple , And it's powerful.
-
-SqlSugar=One object+One parameter=16 functions,
-
- Support:MySql、SqlServer、Sqlite、Oracle 、 postgresql 、达梦、人大金仓 、神通数据库
-
-
-## 📮Nuget
-
-|.net |.net core |
-|---------| ---------|
-|Install-Package sqlSugar |Install-Package sqlSugarCore|
-
-## 📑SqlSugar's 16 Functions
-There are 16 methods under SqlSugarClient
-
+
+ English |
+ 中文
+
+
+- Support Support CodeFirst data migration.
+- Support Join query 、 Union all 、 Subquery
+- Support Configure the query
+- Support DbFirst import entity class from database, or use Generation Tool.
+- Support one-to-many and many-to-many navigation properties
+- Support MySql、SqlServer、Sqlite、Oracle 、 postgresql 、达梦、人大金仓 、神通数据库
-## 🎀 Create SqlSugarClient
-All operations are based on SqlSugarClient
-SqlSugarClient parameter and only one ConnectionConfig
+## Join query
+Super simple query syntax
```cs
-public List GetStudentList()
-{
- var db = GetInstance();
- var list = db.Queryable().ToList();//Search
- return list;
-}
-
-///
-/// Create SqlSugarClient
-///
-///
-private SqlSugarClient GetInstance()
-{
- SqlSugarClient db = new SqlSugarClient(new ConnectionConfig()
- {
- ConnectionString = "Server=.xxxxx",
- DbType = DbType.SqlServer,
- IsAutoCloseConnection = true,
- InitKeyType = InitKeyType.Attribute
- });
- //Print sql
- db.Aop.OnLogExecuting = (sql, pars) =>
- {
- Console.WriteLine(sql + "\r\n" + db.Utilities.SerializeObject(pars.ToDictionary(it => it.ParameterName, it => it.Value)));
- Console.WriteLine();
- };
- return db;
-}
-
-public class Student
-{
- [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
- public int Id { get; set; }
- public int? SchoolId { get; set; }
- public string Name { get; set; }
-}
+var query5 = db.Queryable()
+ .LeftJoin ((o, cus) => o.CustomId == cus.Id)
+ .LeftJoin ((o, cus, oritem ) => o.Id == oritem.OrderId)
+ .LeftJoin ((o, cus, oritem , oritem2) => o.Id == oritem2.OrderId)
+ .Where(o => o.Id == 1)
+ .Select((o, cus) => new ViewOrder { Id = o.Id, CustomName = cus.Name })
+ .ToList();
```
- [View more >> ](https://github.com/sunkaixuan/SqlSugar/wiki/0.SqlSugarClient)
-
-
-## 🎉 1. Queryable
-We use it to query
- 
-
- Here are some examples
-```cs
-//easy
-var getAll = db.Queryable().ToList();
-var getAllNoLock = db.Queryable().With(SqlWith.NoLock).ToList();
-var getByPrimaryKey = db.Queryable().InSingle(2);
-var sum = db.Queryable().Sum(it => it.Id);
-var isAny = db.Queryable().Where(it => it.Id == -1).Any();
-var isAny2 = db.Queryable().Any(it => it.Id == -1);
-var getListByRename = db.Queryable().AS("Student").ToList();
-var getByWhere = db.Queryable().Where(it => it.Id == 1 || it.Name == "a").ToList();
-var getByFuns = db.Queryable().Where(it => SqlFunc.IsNullOrEmpty(it.Name)).ToList();
-var group = db.Queryable().GroupBy(it => it.Id).Select(it => new { id = SqlFunc.AggregateCount(it.Id) }).ToList();
-
-//Page
-var page = db.Queryable().ToPageList(pageIndex, pageSize, ref totalCount);
-
-//page join
-var pageJoin = db.Queryable((st, sc) => new JoinQueryInfos(JoinType.Left, st.SchoolId == sc.Id))
-.ToPageList(pageIndex, pageSize, ref totalCount);
-
-//top 5
-var top5 = db.Queryable().Take(5).ToList();
-
-//join Order By (order by st.id desc,sc.id desc)
-var list4 = db.Queryable((st, sc) => new JoinQueryInfos(JoinType.Left, st.SchoolId == sc.Id))
-.OrderBy(st => st.Id, OrderByType.Desc)
-.OrderBy((st, sc) => sc.Id, OrderByType.Desc)
-.Select().ToList();
-
-```
-[View more >> ](https://github.com/sunkaixuan/SqlSugar/wiki/1.Queryable)
-
-
-
-## 🎊 2. Updateable
-We use it to Update
- ```cs
-//update reutrn Update Count
-var t1= db.Updateable(updateObj).ExecuteCommand();
-
-//Only update Name
-var t3 = db.Updateable(updateObj).UpdateColumns(it => new { it.Name }).ExecuteCommand();
-
-//Ignore Name and TestId
-var t4 = db.Updateable(updateObj).IgnoreColumns(it => new { it.Name, it.TestId }).ExecuteCommand();
-
-//update List
-var t7 = db.Updateable(updateObjs).ExecuteCommand();
-
-//Where By Expression
-var t9 = db.Updateable(it => new class() { name = "a",createtime = p }).Where(it => it.Id == 1).ExecuteCommand();
-
- ```
- [View more >> ](https://github.com/sunkaixuan/SqlSugar/wiki/2.Updateable)
-
-
-## 🎃 3. Insertable
-We use it to Insert
- ```cs
-//Insert reutrn Insert Count
-var t2 = db.Insertable(insertObj).ExecuteCommand();
-
-//Insert reutrn Identity Value
-var t3 = db.Insertable(insertObj).ExecuteReutrnIdentity();
-
-//Only insert Name
-var t4 = db.Insertable(insertObj).InsertColumns(it => new { it.Name, it.SchoolId }).ExecuteReutrnIdentity();
-
-//Ignore TestId
-var t5 = db.Insertable(insertObj).IgnoreColumns(it => new { it.Name, it.TestId }).ExecuteReutrnIdentity();
-
-//Insert List
-var s9 = db.Insertable(insertObjs).InsertColumns(it => new { it.Name }).ExecuteCommand();
-```
- [View more >> ](https://github.com/sunkaixuan/SqlSugar/wiki/3.Insertable)
-
-## 🎄 4. Deleteable
-We use it to Delete
-
- ```cs
- //by entity
-db.Deleteable().Where(new Student() { Id = 1 }).ExecuteCommand();
-
-//by primary key
-db.Deleteable().In(1).ExecuteCommand();
-
-//by primary key array
-db.Deleteable().In(new int[] { 1, 2 }).ExecuteCommand();
-
-//by expression
-db.Deleteable().Where(it => it.Id == 1).ExecuteCommand();
-
- ```
- [View more >> ](https://github.com/sunkaixuan/SqlSugar/wiki/4.Deleteable )
-
-
- ## 🎋 5. SqlQueryable
-```cs
-var list = db.SqlQueryable("select * from student").ToPageList(1, 2);
-var list2 = db.SqlQueryable("select * from student").Where(it => it.Id == 1).ToPageList(1, 2);
-var list3 = db.SqlQueryable("select * from student").Where("id=@id", new { id = 1 }).ToPageList(1, 2);
+```sql
+SELECT
+ [o].[Id] AS [Id],
+ [cus].[Name] AS [CustomName]
+FROM
+ [Order] o
+ Left JOIN [Custom] cus ON ([o].[CustomId] = [cus].[Id])
+ Left JOIN [OrderDetail] oritem ON ([o].[Id] = [oritem].[OrderId])
+ Left JOIN [OrderDetail] oritem2 ON ([o].[Id] = [oritem2].[OrderId])
+WHERE
+ ([o].[Id] = @Id0)
```
-[View more >> ](https://github.com/sunkaixuan/SqlSugar/wiki/5.SqlQueryable )
-## 🎎 6. SaveQueues
- Perform multiple operations together with transactions
-```cs
-var db = GetInstance();
-db.Insertable(new Student() { Name = "a" }).AddQueue();
-db.Insertable(new Student() { Name = "b" }).AddQueue();
-db.SaveQueues();
-
-db.Insertable(new Student() { Name = "a" }).AddQueue();
-db.Insertable(new Student() { Name = "b" }).AddQueue();
-db.Insertable(new Student() { Name = "c" }).AddQueue();
-db.Insertable(new Student() { Name = "d" }).AddQueue();
-var ar = db.SaveQueuesAsync();
-
-db.Queryable().AddQueue();
-db.Queryable().AddQueue();
-db.AddQueue("select * from student where id=@id", new { id = 1 });
-var result2 = db.SaveQueues();
-```
-[View more >> ](https://github.com/sunkaixuan/SqlSugar/wiki/6.queue )
-
-
-## 🎫 7.Ado
-db.Ado.MethodName,Look at the following example
-```cs
-var dt=db.Ado.GetDataTable("select * from table where id=@id and name=@name",new List(){
- new SugarParameter("@id",1),
- new SugarParameter("@name",2)
-});
-var dt = db.Ado.GetDataTable("select * from table where id=@id and name=@name", new { id = 1, name = 2 });
-
-//Use Stored Procedure
-var dt2 = db.Ado.UseStoredProcedure().GetDataTable("sp_school", new { name = "张三", age = 0 });// GetInt SqlQuery 等等都可以用
-var nameP = new SugarParameter("@name", "张三");
-var ageP = new SugarParameter("@age", null, true);//isOutput=true
-var dt2 = db.Ado.UseStoredProcedure().GetDataTable("sp_school", nameP, ageP);
-```
- [View more >> ](https://github.com/sunkaixuan/SqlSugar/wiki/7.ado )
-
-## 🧶 8.Saveable
- Insert or Update
-```cs
-db.Saveable(entity).ExecuteReturnEntity();
-db.Saveable(new Student() { Name = "" })
- .InsertColumns(it => it.Name)
- .UpdateColumns(it => new { it.Name, it.CreateTime }
- .ExecuteReturnEntity();
-
-```
-[View more >> ](https://github.com/sunkaixuan/SqlSugar/wiki/8.saveable )
-
- ## 🛒 9.EntityMain
- ```cs
-var entityInfo=db.EntityMaintenance.GetEntityInfo();
-foreach (var column in entityInfo.Columns)
-{
- Console.WriteLine(column.ColumnDescription);
-}
-```
-[View more >> ](https://github.com/sunkaixuan/SqlSugar/wiki/9.entityMain )
-
- ## 🥼 10.DbMain
- ```cs
- var tables = db.DbMaintenance.GetTableInfoList();
-foreach (var table in tables)
-{
- Console.WriteLine(table.Description);
-}
- ```
- [View more >> ](https://github.com/sunkaixuan/SqlSugar/wiki/a.DbMain )
-
-
- ## 🦺 11.Aop
- ```cs
-db.Aop.OnLogExecuted = (sql, pars) => //SQL executed event
-{
-
-};
-db.Aop.OnLogExecuting = (sql, pars) => //SQL executing event (pre-execution)
-{
-
-};
-db.Aop.OnError = (exp) =>//SQL execution error event
-{
-
-};
-db.Aop.OnExecutingChangeSql = (sql, pars) => //SQL executing event (pre-execution,SQL script can be modified)
-{
- return new KeyValuePair(sql, pars);
-};
-
-```
- [View more >> ](https://github.com/sunkaixuan/SqlSugar/wiki/b.aop )
-
- ## 🎁 12.QueryFilter
- ```cs
-
-//gobal filter
-var db = GetInstance();
-var sql = db.Queryable().ToSql();
-//SELECT [ID],[SchoolId],[Name],[CreateTime] FROM [STudent] WHERE isDelete=0
-
-
-public static SqlSugarClient GetInstance()
-{
- SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { xxx);
- db.QueryFilter.Add(new SqlFilterItem()
- {
- FilterValue = filterDb =>
- {
- return new SqlFilterResult() { Sql = " isDelete=0" };
- }
- });
- return db;
-}
- ```
- [View more >> ](https://github.com/sunkaixuan/SqlSugar/wiki/c.GobalFilter )
-
- ## 🍔 13.DbFirst
- ```cs
-var db = GetInstance();
-//Create all class
-db.DbFirst.CreateClassFile("c:\\Demo\\1");
-
-//Create student calsss
-db.DbFirst.Where("Student").CreateClassFile("c:\\Demo\\2");
-//Where(array)
-
-//Mapping name
-db.MappingTables.Add("ClassStudent", "Student");
-db.MappingColumns.Add("NewId", "Id", "ClassStudent");
-db.DbFirst.Where("Student").CreateClassFile("c:\\Demo\\3");
-
-//Remove mapping
-db.MappingTables.Clear();
-
-//Create class with default value
-db.DbFirst.IsCreateDefaultValue().CreateClassFile("c:\\Demo\\4", "Demo.Models");
-
-
-//Mapping and Attribute
-db.MappingTables.Add("ClassStudent", "Student");
-db.MappingColumns.Add("NewId", "Id", "ClassStudent");
-db.DbFirst.IsCreateAttribute().Where("Student").CreateClassFile("c:\\Demo\\5");
-
-
-```
- [View more >> ](https://github.com/sunkaixuan/SqlSugar/wiki/d.DbFirst )
-
-
- ## 🥙 14.CodeFirst
-```cs
-db.CodeFirst.SetStringDefaultLength(100).BackupTable().InitTables(typeof(CodeTable), typeof(CodeTable2)); //change entity backupTable
-db.CodeFirst.SetStringDefaultLength(100).InitTables(typeof(CodeTable), typeof(CodeTable2));
-```
- [View more >> ](https://github.com/sunkaixuan/SqlSugar/wiki/e.CodeFirst )
-
- ## 🧈1 5.Utilities
- ```cs
-var list = db.Utilities.DataTableToList(datatable);
- ```
-
-[View more >> ](https://github.com/sunkaixuan/SqlSugar/wiki/f.Utilities )
-
-
- ## 🥫 16.SimpleClient
-```cs
-var db = GetInstance();
-var sdb = db.GetSimpleClient();
-sdb.GetById(1);
-sdb.GetList();
-sdb.DeleteById(1);
-sdb.Update(obj);
- ```
- [View more >> ](https://github.com/sunkaixuan/SqlSugar/wiki/g.SimpleClient )
-
-
-## 🕹 Code generator
-https://github.com/sunkaixuan/SoEasyPlatform
-