在ASP.NET中使用存储过程的更好方法?

时间:2011-01-20 03:49:28

标签: stored-procedures orm ado.net code-generation

我目前在一家小型ASP.NET / MS-SQL商店工作。我的团队已经注意到,我们的ADO.NET数据库访问代码花费了大量的开发(和错误修正)时间。我们正在寻找一种软件解决方案,可以简化将DataTable / SQLDataReader结果映射到正确业务对象的过程。手动指定列名并转换结果正成为一场噩梦(特别是涉及架构更改时)。

到目前为止,实体框架(以及在较小程度上,LINQ-to-SQL)是我们发现的唯一可以很好地自动化此过程的软件。我们只需将存储过程添加到模型中,然后让它们返回自动生成的复杂类型。从数据库更新模型的能力也是一个很大的优势。

在我们开始将我们的许多项目迁移到Entity Framework之前,我想知道是否还有其他选项需要我们考虑。我的团队在ORM库或代码生成器之间没有强烈的偏好。

可能有用的一些标准:

  1. 所有数据访问(包括CRUD)都是通过SQL Server 2008R2上的存储过程执行的。 请不要回答“停止使用存储过程”。在我们的情况下,ORM会产生令人难以置信的意义,但我们的DBA决定胜过编程团队。
  2. 软件应该有助于解析SPROC参数名称,并将结果转换为我们可以使用的强类型对象。
  3. 我们是一个预算很少的学术机构。今年我们已经花了相当多的预算(我们获得了Resharper许可证 - 谢天谢地,价格优惠),因此价格昂贵的商业解决方案已经淘汰。
  4. 我们无法使用GPL库。 LGPL / BSD或类似的东西都很好
  5. 我们希望让开发人员更轻松。将列/类型信息从C#移动到手动编写的XML并不能使他们的工作变得更容易。我们正在寻找尽可能自动化的东西。

2 个答案:

答案 0 :(得分:0)

你应该认真看一下Type Type OR / M&软件生成器是Hardwork Library:

http://code.google.com/p/softwareishardwork/

答案 1 :(得分:0)

就个人而言,在遇到这种情况时,我是iBatis.NET的粉丝。据我所知,它不再处于开发阶段,但它的继任者MyBatis也可能是一个不错的选择。