我现在正在建立一个小型网站,在那里我写下了出现的问题,并回答了其他问题.目前我正在使用DAL,就像这里描述的那样.现在我一直在研究其他模型,特别是使用Linq2SQL和ADO.net Entries框架的基于linq的模型.我意识到我正在以某种方式将数据访问移动到代码层,因为我当时正在过滤掉例如带有linq查询的toplist.我开始这样做的原因是因为DAL在任何时候都没有真正与DB同步,并且当我在DB中更改某些内容时,可空类型变得不可为空.然后,如果我将表重新导入数据表,我的查询将丢失.
我的简单问题是,如果你今天要为ASP.net提供一个好的DAL,那会是什么?建议,经验非常欢迎.
我个人喜欢LINQ to SQL和ADO.NET Entity Framework.微软人员也在他们的最新项目中使用这些技术(例如,看看KOBE项目).因此,Microsoft也推荐这两个.
虽然..有时候我需要使用Enterprise Library中的数据访问应用程序块和手动DAL编码,因为我需要对其功能和实现进行最大程度的控制.
其他替代方案有:NHibernate,SubSonic,LLBLGen Pro等不同的ORM解决方案.
关于这个主题的好书:
Pro LINQ:C#2008中的语言集成查询, Jr.,Joseph C. Rattz
Fabrice Marguerie的LINQ in Action
Julia Lerman 编程实体框架
Murach的ADO.NET 3.5,LINQ和 Anne Boehm的VB 2008实体框架
相关工具:
LINQPad也是学习LINQ的好方法:它预装了本书中的200个例子,Nutshell中的C#3.0.没有更好的方式来体验LINQ和函数式编程的酷感.