【发布时间】:2014-02-24 08:41:06
【问题描述】:
我正在尝试编写一个框架来从现有数据库生成实体。
我已经实现了从表中生成实体的所有代码,并且运行良好。 现在我正在寻找一种解决方案来检索生成存储过程实体所需的所有信息。
这是我用来获取存储过程参数的代码
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);
}
现在我必须检索结果集架构,但我找不到完成此任务的正确方法。有什么建议吗?
注意:所有存储过程总是只返回一个可能的模式,因此任何一个存储过程总是对应一个实体。
【问题讨论】:
-
没有视图或任何东西可以找出存储过程返回的内容 - 您需要执行它并查看返回的内容,或者您需要抓取并解析它的源代码
标签: c# sql sql-server stored-procedures codedom