当我上次编程工作时,我们试图从DataReaders和传统的ADO.NET API转向对象关系映射(ORM).
为此,我们通过sqlMetal生成了一个数据库的DataContext.那么就有一个薄数据层使DataContext成为私有的,任何需要访问数据库的代码都必须在这个薄数据层中使用一个公共方法.这些方法基本上都是存储过程;他们将通过LINQ to sql对数据库执行查询.
这是今天的常见办法吗?我的意思是,每个使用.NET 3.5框架的人在他们的构建过程中真正运行sqlMetal,还是什么?这几乎看起来像是一个黑客.
基本上,我想知道LINQ to sql和sqlMetal是否可以预期,如果我今天在不使用第三方,开源ORM的.NET 3.5商店写一个DAL,
解决方法
你的做法很好我目前使用Astroria服务(
ADO.NET Data Services).在
MSDN Magazine有一个很好的介绍.
我也喜欢新的PLINQO(需要CodeSmith Tools).这在我看来很光滑.
当我有这样一个DAL(服务层),我只是从我的客户端应用程序(Silverlight或ASP.NET MVC)消费这个服务.