获取存储过程架构

时间:2014-02-24 08:41:06

标签: c# sql sql-server stored-procedures codedom

我正在尝试编写一个框架来从现有数据库中生成实体。

我已经实现了从表中生成实体的所有代码,并且运行良好。 现在我正在寻找一种解决方案来检索生成存储过程实体所需的所有信息。

这是我用来获取存储过程参数的代码

public static List<StoredProcedureParameter> GetStoredProceduresParameters(SqlConnection connection, string storedProcedureName, bool closeConnection = true)
{
   var query = @"select Parameter_Name, Data_Type, CHARACTER_MAXIMUM_LENGTH 
                 from information_schema.parameters
                 where specific_name = @StoredProcedureName";

   var storedProcedures = new List<string>();

   SqlCommand command = new SqlCommand(query, connection);

   command.Parameters.Add(new SqlParameter("StoredProcedureName", storedProcedureName));

   DataTable dataTable = new DataTable();

   using (SqlDataAdapter dataAdapter = new SqlDataAdapter(command))
   {
        dataAdapter.Fill(dataTable);
   }

   if (closeConnection)
   {
      connection.Close();
   }

   return DataTableMapper.ReadDataTableList<StoredProcedureParameter>(dataTable);
}

现在我必须检索结果集架构,但我找不到完成此任务的正确方法。有什么建议吗?

注意:所有存储过程始终只返回一个可能的架构,因此任何一个存储过程始终只对应一个实体。

2 个答案:

答案 0 :(得分:1)

您好SimoneL:有些框架可以帮到您,来自Microsoft的NHibernate或EF(实体框架),他们不能满足您的所有需求吗?

EF入门:http://msdn.microsoft.com/en-gb/data/ee712907#getstarted

答案 1 :(得分:0)

请参阅我的回答here

当您想要了解架构时,您不想调用SP,因为这可能会影响数据。