鸭脖app下载官网入口-鸭脖娱乐app下载网址

0969-77806103

SqlSugar一个DLL就能应用解析速率远超EF_鸭脖app下载官网入口

发布时间:2021-05-12发布人:鸭脖娱乐app下载网址浏览: 73173 次
本文摘要:鸭脖app下载官网入口,鸭脖娱乐app下载网址,//[id]=id0varpars=expContextDbType开展区别数据库查询而且开展实例化ExpressionContextexpContext=null;SqlServer:expContext=newSqlServerExpressionContext;

解析

应用情景1、Lambdatosql一直是ORM中较难的作用之一,如果有现有的解析库那麼自己写一个ORM难度系数将大幅度降低2、根据Lambda做为KEY开展缓存文件实际操作,尤其是仓储物流方式要想取得表达式开展通用性查看缓存文件则必须采用表达式解析3、学习培训发烧友,假如可以较深层次的理Lambda如何去解成Sql,那麼你对Lambda的了解可能更上一个层级,而不仅在应用上优势SqlSugar除开有内置的ORM作用,或是一款强劲的拉姆达解析器,而且是销售市场上特有的拉姆达转Sql类库SqlSugar不但精巧而且性能十分的好,不遑多让于Dapper乃至更为的出色,对于性能别以为别人的评测十分不可靠,自己用了才知道,自己测了才知道1、高性能表达式解析速率远超EF2、作用十分详细,而且是商品级的解析类库,支持各种各样方式的解析3、精巧你只需引入SqlSugar一个DLL就能应用解析各种各样数据库查询、支持Sql涵数、支持常见原生态涵数安裝.NETCORE/.:staticvoidMainstring[]args{varage=11;Expressionexp=a=>a.id==age;//表达式SqlServerExpressionContextexpContext=newSqlServerExpressionContext;//建立解析目标expContext.Resolveexp,ResolveExpressType.WhereSingle;//逐渐解析varvalue=;//[id]=id0varpars=expContext.Parameters;//id:11}下边是调节結果:根据上边的事例就可以极致的将表达式转化成Sql句子实例教程实例1、怎样建立ExpressionContext解析目标我们可以根据SqlSugar.DbType开展区别数据库查询而且开展实例化ExpressionContextexpContext=null;switchdbtype{caseDbType.MySql:expContext=newMySqlExpressionContext;break;caseDbType.SqlServer:expContext=newSqlServerExpressionContext;break;caseDbType.Sqlite:expContext=newSqliteExpressionContext;break;caseDbType.Oracle:expContext=newOracleExpressionContext;break;caseDbType.PostgreSQL:expContext=newPostgreSQLExpressionContext;break;caseDbType.Dm:expContext=newDmExpressionContext;break;caseDbType.Kdbndp:expContext=newKdbndpExpressionContext;break;default:thrownewException"不支持";2、Where标准的解析基本上和写EF一样常见的都是会支持Expressionexp=it=>it.Bool2==b.Value;expContext.Resolveexp,ResolveExpressType.WhereSingle;varvalue=;varpars=expContext.Parameters;//[Bool2]=Bool20我们在写一个Like的事例Expressionexp=it=>schoolData.Name;ExpressionContextexpContext=newExpressionContext;expContext.Resolveexp,ResolveExpressType.WhereMultiple;varvalue=;varpars=expContext.Parameters;//[it].[Name]like'%' MethodConst0 '%'bool种类的解析是ORM解析的难题中的难题,状况各种各样Expressionexp=it=>it.Bool1&&it.Bool1;SqlServerExpressionContextexpContext=newSqlServerExpressionContext;expContext.Resolveexp,ResolveExpressType.WhereSingle;varvalue=;varpars=expContext.Parameters;//[Bool1]=1AND[Bool1]=1多元化的bool表述的支持Expressionexp=it=>true&&it.Name!=null;ExpressionContextexpContext=newExpressionContext;expContext.Resolveexp,ResolveExpressType.WhereSingle;varvalue=;varpars=expContext.Parameters;//1=1AND[Name]ISNOTNULL多表查询的支持,在多表查询中我们都是必须加前缀的例如大家要想it.id而不是idExpressionexp=it=>it.Id>1&&it.Name!=name||it.Id==1||it.Name==WhereConst.name;ExpressionContextexpContext=newExpressionContext;expContext.Resolveexp,ResolveExpressType.WhereMultiple;varvalue=;varpars=expContext.Parameters;//[it].[Id]>Id0AND[it].[Name]Name1OR[it].[Id]=Id2OR[it].[N

性能

ame]=Name33、怎样解析Select支持dao层解析、查看单独字段名解析、密名目标解析Expressionexp=it=>newDataTestInfo2{Bool1=it.Bool1,Bool2=it.Bool2};ExpressionContextexpContext=newExpressionContext;expContext.IsSingle=false;expContext.Resolveexp,ResolveExpressType.SelectSingle;varselectorValue=;varpars=expContext.Parameters;//[Bool1]AS[Bool1],[Bool2]AS[Bool2]Expressionexp=it,school=>new{Name="a",Id=it.Id/2,SchoolId=school.Id};ExpressionContextexpContext=newExpressionContext;expContext.IsSingle=false;expContext.Resolveexp,ResolveExpressType.SelectMultiple;varselectorValue=;//constant0AS[Name],[it].[Id]/Id1AS[Id],[school].[Id]AS[SchoolId]3、字段称的解析比如orderbyit=>it.Name像这类大家就必须取得NameExpressionexp=it=>it.Name;ExpressionContextexpContext=GetContext;expContext.Resolveexp,ResolveExpressType.FieldSingle;varselectorValue=;//Name统计分析单独字段名Expressionexp=it=>SqlFunc.AggregateAvgit.Id;ExpressionContextexpContext=GetContext;expContext.Resolveexp,ResolveExpressType.FieldMultiple;varselectorValue=;//AVG[it].[Id]4、Sql涵数的支持Expressionexp=it=>"a"?1:2==1;SqlServerExpressionContextexpContext=newSqlServerExpressionContext;expContext.Resolveexp,ResolveExpressType.WhereSingle;varvalue=;varpars=expContext.Parameters;//CASEWHEN[Name]like'%' MethodConst0 '%'THENMethodConst1ELSEMethodConst2END=Const3支持的C涵数:.......IFst.Id>1.Returnst.Id.ElseIFst.Id==1.Returnst.SchoolId.Endst.Id//相当于Casewhen5、其他作用5.1支持特点例如我表名和实体线名不一样大家还可以完成SqlServerExpressionContextexpContext=newSqlServerExpressionContext;typeofStudent.Name,"OA_STUDENT"字段名也很容易SqlServerExpressionContextexpContext=newSqlServerExpressionContext;"Id","ID",typeofStudent.Name5.2支持子查询Expressionexp=a=>SqlFunc.Subqueryable.Whereit=>it.testId==a.id.Selectit=>it.id==1;varexpContext=newSqlServerExpressionContext;expContext.Resolveexp,ResolveExpressType.WhereSingle;varvalue=;varpars=expContext.Parameters;6、自己动手能力建立ORM通上边的学习培训大家想写成下边的英语的语法应当非常非常容易了varoneClass=db.Queryableo,i,c=>o.Id==i.OrderId&&o.CustomId==c.Id.Whereo=>o.id==1.Whereo,i=>i.xx==1.OrderByo=>o.Id.Selecto,i,c=>newViewOrder{Id=SqlFunc.GetSelfAndAutoFillo.Id,//o.*CustomName=c.Name//[c].[Name]AS[CustomName]}.ToList完成上边的作用一共采用Where的解析、列的解析和Select的解析1、下边3个采用Where的解析o,i,c=>o.Id==i.OrderId&&o.CustomId==c.Ido=>o.id==1o,i=>i.xx==12、下边一个采用列的解析o=>o.Id3、下边一个采用Select的解析o,i,c=>newViewOrder{Id=SqlFunc.GetSelfAndAutoFillo.Id,//o.*CustomName=c.Name//[c].[Name]AS[CustomName]}网站源码下载:大家的赞或是大家的star便是开源系统者的驱动力,开源系统不易和气生财https://gitee.com/sunkaixuan/SqlSugar小彩蛋:下一篇文章我能详细介绍怎么使用SqlSugar完成WebFirst模式开发编码,领跑CodeFirst和DbFirst的设计方案和开发设计核心理念,也我十多年开发设计工作经验的归
本文关键词:鸭脖app下载官网入口,拉姆达,解析,表达式,支持

本文来源:鸭脖app下载官网入口-www.slutwalkmelbourne.com

上一篇:回答解读:狼狈为奸因为人处事,锦衣玉食求奢华是什么生肖小动物-鸭脖娱乐app下载网址
下一篇:曼联名宿埃里克坎通纳的传记【鸭脖app下载官网入口】