2008-11-14 39 views
6

我已经继承了一个相当大的应用程序,它真的可以使用一些清理。整个应用程序都存在数据访问代码。在代码背后,一些业务逻辑类,一些内联在经典的asp页面。自动创建围绕存储过程的C#包装类

我想要做的是重构此代码,将所有数据访问代码移除到几个DAL类中。

所有的数据访问都是通过存储过程完成的(Microsoft SQL 2000)。有300-400人。

好像有应该以分析存储过程以自动的方式,并自动生成用于它们中的每C#方法中,所述方法参数映射到存储过程的参数,与返回的一个数据表的方法。

我对ORM产品没有任何经验,我不确定我要找的是一个完整的ORM,还是只是一个第三方实用程序,它可以帮助生成sp调用的简单包装。

回答

2

如果你有机会获得的.NET Framework 3.5和LINQ to SQL,你可以做到这一点很容易,看看这个视频:

LINQ to SQL: Using Stored Procedures

使用现有的存储过程和函数 很容易用LINQ。我们只需 将存储过程拖到 O/R映射表面上,并从 中调用它们生成的数据上下文对象。

2

我建议您持有Code Smith。该产品包含一个ORM模板,并完全支持从DB模式生成类(我认为Procs)。然后你可以编码你需要的所有物体。

另一种选择是使用LINQ to SQL。

0

拖放存储过程到数据集设计界面(在.NET 2.0和更高版本)生成一个包装功能部件

但如果你有很多人做,你可能会使用或写会更好一个简单的代码生成

两个选项:

  1. 生成自己的包装代码C#类/方法
  2. 产生dataset.xsd文件,然后在Visual Studio中打开它并让设计师产生的类/方法你

后者可以通过数据集设计图面保持不变,但可能很难得到正确的(第一次)产生

1

我的方法是首先考虑更高级别 - 创建数据访问类和方法是满足现有或新代码库需求的最佳方式。然后,使用现有的过程调用您的新对象。

我不认为你应该考虑任何形式的大规模自动化这项任务。

0

与Robert的建议类似,我们已经编写了我们自己的Code Smith版本。

我们的“代码生成器”分为两部分:SQL &类。

SQL: 将生成更新,选择&删除存储的过程。

C#: 将生成类和文件另存为的.cs

我们呼吁: sp_MShelpcolumns“表名”,以获得字段和数据类型的列表,然后做一个替代。

它不是一个完美的解决方案,但对于获得前80%非常有效的完成