我们当前正在使用什么进行数据访问?
我们正在使用什么特定的方法/应用程序在应用程序和数据库之间进行通信?带存储过程的自定义代码?亚音速? nHibernate?实体框架? LINQ?
解决方案
回答
我主要使用Microsoft Enterprise Library数据访问块来访问MS SQL Server数据库中的存储过程。
回答
在工作中,我们的代码库是C ++和Perl,我们使用MySQL数据库。对于我们的界面,我们在C ++代码的基本MySQL客户端库和Perl脚本的DBI模块中包装了一些相当薄的自定义类。
回答
SubSonic和LINQ to SQL,但希望有一天LINQ to SubSonic!
回答
在工作中和业余时间项目中,我主要使用NHibernate。最初是为了打破使用ADO.NET数据读取器/数据集的工作规范,现在我们有一些使用Hibernate / NHibernate的项目。
回答
早期版本的MS Enterprise App Block中的SqlHelper类。它远非完美,但对于简单的CRUD应用程序却难以超越其简单性。
回答
我们在我们的项目上使用IdeaBlade。我发现它非常易于使用。
回答
MS SQL存储过程。
回答
我通常使用LiNQ创建一个DataTier。
它由实现复合接口的存储库组成,因此我对如何使用它们具有完全的灵活性。
IPersonRepository : IReadRepository<Person>, ICreateRepository<Person>, IUpdateRepository<Person> //and so on..
它们主要以域对象为中心,因此它们发出域对象并自行处理所有映射逻辑。
他们可能还会创建一些列表字典,例如由人的ID和名称组成的字典,因此我不必从数据库中拉太多以显示下拉列表。
尽管有时对于较小的项目,我只使用不带.dbml的属性基映射。
我觉得这种方法提供了一个非常干净的应用程序模型,因为所有混乱的以数据为中心的逻辑都隐藏在DataTier中。业务/服务层是纯业务:)
回答
- SQL服务器
- 所有存储过程
- 我在项目之间重复使用的手动多态实体框架,以处理Sproc结果集->对象映射。
我想那使我很老派了。
回答
过去一年左右的时间里,我一直在使用NHibernate,事实证明,它是一种免费(几乎)免费获取基本CRUD的快速方法。
如果我们希望了解这些内容,可以在CodeProject上推荐Billy McCafferty的NHibernate最佳实践文章:
http://www.codeproject.com/KB/architecture/NHibernateBestPractices.aspx
事实证明,这是一个很好的可扩展性和灵活性的解决方案,并且可以轻松实现DAL与其他层的清晰分离。
回答
MVC框架,其中模型的模型具有具有实际数据库语言的数据源类,在大多数情况下,开发人员使用save,saveField,delete,find等方法,并且该框架将其转换为sql查询。这不仅更安全,更容易,而且还非常方便,因为代码独立于数据源,即,我们可以更改数据库服务器并保留代码。
回答
我从工作场所的Java项目开始使用Hibernate,然后意识到存在.Net端口(NHibernate),并在.Net项目中再次使用了它。我也看过joesteele提到的文章,并在需要时对其进行了一些小的修改,并将其用作我的项目的基础,主要是在需要以手动方式开始和结束交易为目标时。
面向Windows或者Linux作为应用程序平台,可以应用于Java和Cplatforms的相同实践和库,使它们在不同平台上的开发比需要学习不同框架的开发更容易。
尽管我打算淘汰Subsonic,iBatis和LINQ,但目前Hibernate和NHibernate似乎是完成这项工作的正确工具,而我必须同时针对Windows和Linux平台。
回答
我在以前的工作中使用Hibernate连接到MySql和Sql Server,但是从那以后我切换到了.NET,所以目前我可以使用LINQ,而且我非常喜欢。
回答
我们有一个Oracle后端,其中有大约500个存储过程,其中应用程序直接针对数据运行。
我开始构建一个一直集成的自定义或者映射的领域模型,但是最初我做错了,现在也陷入了麻烦之中……呃