.NET和数据库层

cor*_*ore 10 c# database entity-framework linq-to-sql

当我上次编程时,我们试图将DataReaders传统的ADO.NET API转向对象关系映射(ORM).

为此,我们生成了一个DataContextDB通道sqlmetal.然后有一个瘦数据层DataContext private,而且需要访问数据库的任何代码都必须使用public此瘦数据层中的方法.这些方法基本上都是存储过程; 他们将通过LINQ to SQL对数据库执行查询.

这是今天常见的做法吗?我的意思是,每个使用.NET 3.5框架的人是否真的在构建过程中运行sqlmetal,或者是什么?这在当时几乎看起来像是一个黑客.

基本上,我想知道如果我今天要在不使用第三方开源ORM的.NET 3.5商店编写DAL,LINQ to SQL和sqlmetal是否可以预期.

Jac*_*ams 5

拥有某种数据访问层仍然是最佳实践.是否通过ORM实现这一目标是一个备受争议的问题.有一个派系通常认为ORM是要走的路.另一派认为存储过程和以数据库为中心是最佳途径.

此外,这可能不是你想要的海报,但它相似(也是我小隔间的海报)

http://download.microsoft.com/download/4/a/3/4a3c7c55-84ab-4588-84a4-f96424a7d82d/NET35_Namespaces_Poster_LORES.pdf


Dav*_*uda 3

你的做法很好。我目前使用 Astroria 服务(ADO.NET 数据服务)。MSDN 杂志对此有一个很好的介绍。

我也喜欢新的PLINQO(不过需要CodeSmith 工具)。在我看来,这非常巧妙。

当我有这样的 DAL(服务层)时,我只需从客户端应用程序(Silverlight 或 ASP.NET MVC)使用此服务。