有人能推荐一个简单的数据访问层(C# .NET)吗?不想使用Microsoft应用程序数据访问块,因为它似乎非常臃肿和过度。也不想出于各种原因使用LINQ to SQL。我想在此基础上构建我们自己的内部ORM。过去,我总是已经构建好了数据访问层,所以从未参与过构建...
有人能推荐一个简单的数据访问层(C# .NET)吗?不想使用Microsoft应用程序数据访问块,因为它似乎非常臃肿和过度。也不想出于各种原因使用LINQ to SQL。我想在此基础上构建我们自己的内部ORM。过去,我总是已经构建好了数据访问层,所以从未参与过构建...
public interface IBusinessDataOperations {
// hides any ORM of choice
}
如果有一天你有空闲时间,并想要构建自己的ORM,即使尝试其他产品后,你也可以将其插入到这个接口背后。
您是否想要使用Linq?
您是否想要使用DataSets / DataTables?
您是否想要使用代码生成器(自己的或他人的)?
您是否想要使用存储过程?
老实说,如果您不在意任何高级功能并且不介意这个过程的单调乏味,那么从头开始构建自己的DAL/ORM并不难。但您可能需要有点疯狂。 :)
我假设您也不想使用SubSonic、EntityFramework或NHibernate之类的东西,但如果我的假设是错误的,请纠正我。
ADO.NET Entity Framework,微软的ORM(.NET 3.5 SP1中发布)
Base One Foundation Component Library,免费或商业
BCSEi ORM Code Generator,免费或商业
Business Logic Toolkit for .NET,开源
Castle ActiveRecord,.NET的ActiveRecord,开源
DataObjects.Net v4.0,开源,商业
DevForce,商业,N-Tier
Developer Express,eXpress Persistent Objects(XPO)
EntitySpaces,商业
Euss,开源
Habanero,免费开源
iBATIS,免费开源
Invist,免费的ORM和代码生成工具
LLBLGen,开源驱动程序,商业
LightSpeed,免费或商业
Neo,开源
NConstruct,商业
NHibernate,开源
Opf3,免费和商业
ObjectMapper .NET,GPL和商业许可证
OpenAccess,免费或商业 TierDeveloper,免费的ORM和代码生成工具
Persistor.NET,免费或商业
Quick Objects,免费或商业
Sooda,开源;BSD许可证
Subsonic,开源
Orasis,免费试用或购买。
Telerik,快捷或购买。
CSLA.NET,免费。
ECO,免费或商业
nhydrate,开源
.netTiers,开源
dapper-dot-net,开源
codesmithtools plinqo,开源
祝你好运,希望这有所帮助。
对于非常简单的需求(我指的是简单!),我会基于存储库模式创建一个DAL,其中SQL查询在存储库方法中完成,然后创建并返回简单的POCO(Plain old CLR objects)。
如果需要,您可以调用sprocs或参数化SQL。然后将数据映射到您的poco(只需使用标准的SQLDataReader即可)
但说实话,一旦查询变得庞大或复杂,或者对象中有很多字段,最好让适当的DAL / ORM来处理,并集中精力处理应用程序。
在做出决定之前,有一些问题你必须自问,而不仅仅是是否需要使用Linq或MS数据访问层,以下是其中的一些问题:
几年前,我为我所工作的公司构建了一个DAL,结果比我想象的要容易得多,它是基于反射的ORM,目前支持许多数据库,如SqlServer、Oracle、PostgreSql和SqLite,我可以与你分享代码,这可能有助于你构建自己的DAL或根据需要进行扩展。
如果你有时间,构建自己的DAL会对你有很大的学习收获,你将学习一些SQL和语言的几个特性,也许你以后再也用不到了。
祝你好运...