帮忙推荐一个.NET ORM框架,相对轻量级免配置的那种最好了
首先,不知道现在ORM框架是不是潮流?
还有ORM框架确实很方便,但发现也有其不足之处,比如多表联合查询,对视图和存储过程的处理不理想。
整体性能低于面向SQL语句
但还是对这个有浓厚的兴趣。希望可以优化和改善。 满足中型WEB应用即可,增删改查4个功能。。。
看了一个DBScript 地址:http://www.madcn.net/?p=544 大家说说这个怎样?还有更好的推荐吗,主要要简易,高效吧。
谢谢
------解决方案--------------------用LINQ
NHibernate
DevExpress Xpo
------解决方案--------------------
------解决方案--------------------我现在用的nhibernate,配置不难,好用,响应速度快,事物简单,api较多
如果是轻量级的就用LINQ
------解决方案--------------------还有nhibernate能支持视图和储存过程吗。 是不是视图也要反射一个对象来呢
---------------
支持的,返回的是一个IList (这样可以不反回一个类对象),如果要一个类的对象就比较麻烦了。
1、如果要返回一个dataTable就需要使用IDBConnection,不确定数据库是mssql或者其他
2、如果项目指定是mssql/oracle数据库也可以使用sqlconnection/oledbConnection
session的connection是可以转换成相应的数据库connection。
之所以这样做,就是因为有些项目比较着急。
nhibernate最强大在于事物的处理能力,而且编码较少,如果数据库存在改动,只需要改动xml文件和实体类。
------解决方案--------------------nhibernate 支持很多数据库,功能强大,但是配置繁杂,性能没有 entity framework 好,entity framework 似乎目前只支持MS自家的sql server,缺少其他provider
------解决方案--------------------那不错。
能说下,你对熟悉几个ORM框架的性能和大致功能吗?
---------------
1、XPO (Dev公司) 收费项目,使用较简单,语法支持hql/sql,事物
2、openAccess (telerik公司) 收费项目,全部自动化生成,语法支持hql/sql,事物
3、Ibitis.net 免费,(代码生成器需要收费),基本自动化生成,语法在xml
以上orm通常支持一个为statement的类型,相当于自己去写sql或存储过程。
不过最为强大的框架是 .net castle 此乃神器,轻易不碰他。
------解决方案--------------------谢谢.其实我更关心的是性能.
内部机制吧, 为何他们要把数据库表映射的字段属性保存xml文件呢? 为了避免从数据库实体类上面发射?
通常来说最直接的也是最快的. ORM要工厂分布,然后发射实体属性,然后拼接sql语句,最后是ado操作
还有对于多表联合查询,视图这2个数据对象,我还无法转换为操作对象,难道要为每个视图都建立一个实体对象吗
-------------------
1、数据处理能力
正常的增删改查,性能基本一样,关键是你的数据库处理工厂要采用单例模式封装,如果存在多个连接,采用静态字典,注意声明构造函数为private,其他的看看单例模式。
批量处理,强调事物处理,你是一次事物处理几w条数据,还是每千条使用事物处理?
2、保存xml处理
通常数据库的数据类型和代码的数据类型不同 string-varchar/nvarchar 为了增强orm的能力通常需要xml进行映射处理.
3、还有对于多表联合查询,视图这2个数据对象,我还无法转换为操作对象,难道要为每个视图都建立一个实体对象吗
----------------------------
多表可以返回一个IList 对象,注意不是IList<object>,至于用不用实体,答案是可以不用。
忘记了国产的一款orm产品(免费)nbear,满不错的。
但是如果是商业开发,我还是建议nhibernate和linq,免费,这个资料多,文档全。而且会持续升级。
如果想弄明白orm(我没全弄明白,只能在实际开发使用,没有深入研究) 看看.net castle的作者的一本书 c# bussiness object 的一本书。
这本书最好别轻易看,有点太深了,该作者有点NB