NHibernate的轻量级替代品

And*_*eas 17 .net nhibernate orm

由于所有的依赖关系,NHibernate并不适合我们的环境.(城堡,log4net等)

有一个很好的轻量级替代品吗?

支持基于简单文件的数据库(如Access/SQLite/VistaDB)至关重要.

理想情况下,包含在仅引用.NET程序集的单个程序集中的内容.如果只需要.NET framework 2.0或3.0就是奖励.

Bra*_*son 18

大规模 - https://github.com/robconery/massive

要么

PetaPoco - https://github.com/toptensoftware/petapoco

两者都是单个.cs文件,没有依赖关系,除了GAC中的内容.

(完全披露,PetaPoco是我写的东西)

  • Simple.Data也许值得一看. (4认同)

Bit*_*der 8

对于性能良好并且只需要单个装配的轻量级ORM,为什么不试用Mindscape中的Lightspeed.它不是开源的,但源代码是可用的并且价格合理 - 大多数ORM的风险并不是很好的采用当然是质量和支持水平,并且很少有其他开源ORM值得在其中打扰.目前净空间.

由于你不喜欢NHibernate的依赖,听起来你不需要一个日志框架或任何城堡项目方面,即IoC,Monorail等.你有没有考虑过只需要NHIBnate的最低要求(log4net和我相信的Iesi系列,以及来自城堡项目的动态代理?)和运行ILMerge以将它们整合到一个组件中 - 可能需要一些摆弄,但它不是太难 - 或者你可以只拉动源代码这些项目中的每一个都是为您的组织维护的NHibernate的自定义构建,它修剪了您的项目/组织不需要的功能 - 它不像听起来那么难/难,我已经为这个项目做了一些工作我们想要受益于ORM,但需要减少分布式文件/安装程序的大小.

另外 - 你是否能够解释一下你对基于Nhibernate的解决方案过于"沉重"的看法......根据我的经验,它与一些相比较轻巧的ORM框架.


Ric*_*nks 7

添加到此列表中,您还可以查看Dapper(由StackOverflow本身编写和使用).


小智 2

一般来说,为了让您的数据库后端能够与 .net 一起使用,您需要一个 ADO.Net 提供程序。

对于 MS Access (Jet),提供程序随 .net 一起提供。对于 SQLite,有一个独立的 ADO.Net Provider。

至于数据访问层库,如果您想要对 ADO.Net 进行一些抽象:

从框架 2.0 及更高版本开始,所有这些都运行良好。

基本上,选择(而且有很多选择)