ORM全新理念,谈主流ORM思想,待续
一、EF(实体框架)
主流的ORM思想以Linq为主要思想支柱,其中王者不得不说为EF,优雅便捷可谓正统,当其性能和实战性似乎仍待提高.Linq不能为我们生成理想的sql,而且linq自身的性能有损失.这是EF不得不面对主要的问题.EF的优点诸多不必多说.
Linq的优缺点似乎也成了EF的优缺点之一.微软想通过Linq让我们以一种面向数据对象的方式来思考,及持久化他们的数据.可是我们可想想数据库的中的记录难道就不是对象了?Linq给人以优雅和便捷我想这是他明显的优势,然后就是匿名对象在其中发挥的重要作用.如下所述:
where c.Country == "France" && c.Orders.Count > 5
select new
{
Country= c.Country,
City= c.City,
Count= c.Orders.Count
};
然后我们Obj.Country, Ojb.Count的方式操作数据.优雅便捷.
如果让你看到以下的情况,你在一个无法写出linq的情况下会如何选择
int count=obj.Count;
string country=obj.Country;
var list=DBFactory.GetAutoEntities("相当复杂的一个sql查询语句","自定义类名");
for(var a in list){
int count=a.Count;
string country=a.Country;
}
这是Moon的一个新特性.其中的obj是类名的一个实例,它的成员是查询中记录的字段.欢迎大家到时试用.
其实linq没有给我带来什么,只是一种概念上的错觉,负责的sql它就无能为力了.其实一个匿名类型作为model返回给视图时是无法使用的,这也是一个问题,但moon这不然,因为事实上它是强类型.我的设计理念:大道至简.
对于实体框架的性能不用多说,给一个比人的测试:http://www.189works.com/article-54297-1.html
总之:性能在大型项目中的需求是至关重要的,不要只说瓶颈在io和网络上,其实代码本身是重要的一环.
二.Nhiberate
不得不说它很强大,在很多方面都由于EF,当然linq的支持不如EF.物极必反视乎是自然界的普遍规律,强大带来的复杂性也不容小觑.带来的学习成本也是比较大的.复杂的配置是java的显著体征..NET阵营似乎通常都不喜欢.
三.我们谈谈企业开发的宗旨.
【推荐】国内首个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框架的用法!