sql的逆袭!让我们开始无视Linq的存在!强类型,无需实体类!(Moon.Orm的自动实体:GetAutoEntities)
1.Moon.Orm的自动实体查询方案
using System; using Moon.Orm; using System.Windows.Forms; using North; using System.Diagnostics; using System.Collections.Generic; namespace Demo { class Program { public static readonly Stopwatch sp= new Stopwatch(); public static void Main( string [] args) { Moon.Orm.GlobalData.AUTO_COMPLIE_DIRECTORY_PATH=Application.StartupPath; string sql= "select top {0} * from Orders Left join Order_Details on Order_Details.OrderID=Orders.OrderID" ; object ret=DBFactory.GetAutoEntities(sql, null ,1); sp.Restart(); dynamic ret2=DBFactory.GetAutoEntities(sql, null ,200); sp.Stop(); Console.WriteLine( "dynamic实体:" +sp.Elapsed); sp.Restart(); string sql2= "select top 200 * from Orders Left join Order_Details on Order_Details.OrderID=Orders.OrderID" ; var list=moontemp.EntityGetByAdonet.GetList(sql2,DBFactory.DefaultDB); sp.Stop(); Console.WriteLine( " 纯ado.net:" +sp.Elapsed); Console.Write( "Press any key to continue . . . " ); Console.ReadKey( true ); } } } |
2.运行结果
我们可以看出效率和纯ADO.NET差不多.而便捷性大家想想就知道.而且是强类型的,所以无视<匿名类型无法返回MVC视图的问题>
要求:.net 4.0以上.
我们可以这么使用了:decimal newMoney=ret2[2].SumMoney+100;
配置文件的设置:(注意不要注释)
注意最后的路径有一个\
3.方法讲解
object GetAutoEntities(string sqlTemplate,string className,params object[] values)
sqlTemplate:sql模板,同样的逻辑可以用同一套模板,到时候可以提供查询效率
className:这个是自己随意取的名字,用于缓存,也可以为null,但效率就低些.如果你给它赋值了,当sql模板有变动时,请你自己清空编译路径中moon_temp....dll
params object[] values:用于替换模板中的参数的.注意模板的参数形式如 {0} {1} {2}
3.demo下载
注意自己附加数据库到你的数据库中,项目中注意修改连接字符串.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!