最好ORM最快ORM简单容易ORM框架

网友投稿 1286 2022-10-25 15:49:02

最好ORM最快ORM简单容易ORM框架

SqlSugar 5.X API

世界上最简单的ORM,只需要配置连接字符串,F5运行控制台自动建库建表运行DEMO

Using SqlSugar is very simple ,And it's powerful.

SqlSugar=One object+One parameter=16 functions,

Support:MySql、SqlServer、Sqlite、Oracle 、 postgresql

Contactinfomation

Email:610262374@qq.com QQ Group:225982985

Nuget

.net.net core
Install-Package sqlSugarInstall-Package sqlSugarCore

SqlSugar's 16 Functions

Create SqlSugarClient

All operations are based on SqlSugarClient

SqlSugarClient parameter and only one ConnectionConfig

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; }}

View more >>

1. Queryable

Here are some examples

//easyvar 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();//Pagevar page = db.Queryable().ToPageList(pageIndex, pageSize, ref totalCount);//page joinvar pageJoin = db.Queryable((st, sc) =>new JoinQueryInfos(JoinType.Left,st.SchoolId==sc.Id)).ToPageList(pageIndex, pageSize, ref totalCount);//top 5var 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 >>

2. Updateable

We use it to Update

//update reutrn Update Countvar t1= db.Updateable(updateObj).ExecuteCommand();//Only update Name var t3 = db.Updateable(updateObj).UpdateColumns(it => new { it.Name }).ExecuteCommand();//Ignore Name and TestIdvar t4 = db.Updateable(updateObj).IgnoreColumns(it => new { it.Name, it.TestId }).ExecuteCommand();//update Listvar t7 = db.Updateable(updateObjs).ExecuteCommand();//Where By Expressionvar t9 = db.Updateable(it=>new class() { name="a",createtime=p }).Where(it => it.Id == 1).ExecuteCommand();

View more >>

3. Insertable

We use it to Insert

//Insert reutrn Insert Countvar t2 = db.Insertable(insertObj).ExecuteCommand();//Insert reutrn Identity Valuevar t3 = db.Insertable(insertObj).ExecuteReutrnIdentity();//Only insert Name var t4 = db.Insertable(insertObj).InsertColumns(it => new { it.Name,it.SchoolId }).ExecuteReutrnIdentity();//Ignore TestIdvar t5 = db.Insertable(insertObj).IgnoreColumns(it => new { it.Name, it.TestId }).ExecuteReutrnIdentity();//Insert Listvar s9 = db.Insertable(insertObjs).InsertColumns(it => new { it.Name }).ExecuteCommand();

View more >>

4. Deleteable

We use it to Delete

//by entitydb.Deleteable().Where(new Student() { Id = 1 }).ExecuteCommand();//by primary keydb.Deleteable().In(1).ExecuteCommand();//by primary key arraydb.Deleteable().In(new int[] { 1, 2 }).ExecuteCommand();//by expressiondb.Deleteable().Where(it => it.Id == 1).ExecuteCommand();

View more >>

5. SqlQueryable

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);

View more >>

6. SaveQueues

Perform multiple operations together with transactions

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 >>

7.Ado

db.Ado.MethodName,Look at the following example

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 Procedurevar 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=truevar dt2 = db.Ado.UseStoredProcedure().GetDataTable("sp_school",nameP,ageP);

View more >>

8.Saveable

Insert or Update

db.Saveable(entity).ExecuteReturnEntity();db.Saveable(new Student() { Name = "" }) .InsertColumns(it=>it.Name) .UpdateColumns(it=>new { it.Name,it.CreateTime } .ExecuteReturnEntity();

View more >>

9.EntityMain

var entityInfo=db.EntityMaintenance.GetEntityInfo();foreach (var column in entityInfo.Columns){ Console.WriteLine(column.ColumnDescription);}

View more >>

10.DbMain

var tables = db.DbMaintenance.GetTableInfoList();foreach (var table in tables){ Console.WriteLine(table.Description);}

View more >>

11.Aop

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 >>

12.QueryFilter

//gobal filtervar 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 >>

13.DbFirst

var db = GetInstance();//Create all classdb.DbFirst.CreateClassFile("c:\\Demo\\1");//Create student calsssdb.DbFirst.Where("Student").CreateClassFile("c:\\Demo\\2");//Where(array)//Mapping namedb.MappingTables.Add("ClassStudent", "Student");db.MappingColumns.Add("NewId", "Id", "ClassStudent");db.DbFirst.Where("Student").CreateClassFile("c:\\Demo\\3");//Remove mappingdb.MappingTables.Clear();//Create class with default valuedb.DbFirst.IsCreateDefaultValue().CreateClassFile("c:\\Demo\\4", "Demo.Models");//Mapping and Attributedb.MappingTables.Add("ClassStudent", "Student");db.MappingColumns.Add("NewId", "Id", "ClassStudent");db.DbFirst.IsCreateAttribute().Where("Student").CreateClassFile("c:\\Demo\\5");

View more >>

14.CodeFirst

db.CodeFirst.SetStringDefaultLength(100).BackupTable().InitTables(typeof(CodeTable),typeof(CodeTable2)); //change entity backupTabledb.CodeFirst.SetStringDefaultLength(100).InitTables(typeof(CodeTable), typeof(CodeTable2));

View more >>

15.Utilities

var list = db.Utilities.DataTableToList(datatable);

View more >>

16.SimpleClient

var db = GetInstance();var sdb = db.GetSimpleClient();sdb.GetById(1);sdb.GetList();sdb.DeleteById(1);sdb.Update(obj);

View more >>

Code generator

https://github.com/sunkaixuan/SoEasyPlatform

More APi 中文文档:

http://codeisbug.com/Doc/8

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:基于Nutz的开源企业级开发框架
下一篇:手把手教你在 Vue3 中自定义指令
相关文章