我有SQL Server存储过程,它有几个输入。我想节省手动创建C#ADO.NET sqlParameter数组的时间,如
sqlParameter[] sqlParameters =
{ new SqlParameter("customerID", SqlDbType.Int, 4, ParameterDirection.Input, false, 0, 0, string.Empty, DataRowVersion.Default, custID) .......
任何可以使用此代码生成器和可以执行此操作的模板吗?如果您提到代码生成器,请提及哪个模板。与CodeSmith中的哪一个相同。
答案 0 :(得分:0)
如果没有大量存储过程,可以在Visual Studio中编写宏来生成代码(例如,请参阅this)。实际上,根据你编写宏的方式,它也可以处理大量的数据。
如果您不需要手动制作DAL,那么您可能应该考虑使用ORM(实体框架,LINQ to SQL等)来为您生成代码。
答案 1 :(得分:0)
我找到了一些链接(我正在使用),我相信它会做你想做的一些代码 - http://www.codeproject.com/KB/database/DetermineSql2005SPParams.aspx
答案 2 :(得分:0)
使用“添加新项”创建数据集。然后,从服务器资源管理器中,将存储过程拖到设计图面上。
这将创造一些东西:
DataSet
,您可以忽略现在,由于命令集受到保护,您需要做更多的工作。在设计图面上,按F7(查看代码)。这将创建一个DataSet1.cs文件。删除内容并添加以下内容:
using System.Data.SqlClient;
namespace WebApplication.Data.DataSet1TableAdapters
{
public partial class QueriesTableAdapter
{
public SqlCommand aspnet_Membership_CreateUser_Command
{
get { return (SqlCommand) CommandCollection[0]; }
}
}
}
(我打开了一个Web应用程序,它使用的是标准的ASP.NET数据库,因此这是示例中的存储过程)
这将允许您的代码访问QueriesTableAdapter.aspnet_Membership_CreateUser_Command.Parameters
。
答案 3 :(得分:0)
查看我的SqlSharpener project。它可以在设计时解析SSDT项目中的sql文件,然后你可以调用一个包含的T4模板为你的所有存储过程创建C#包装器,或者你可以构建自己的T4模板想。