【问题标题】:How LinqToSql Generates output result of stored proceduresLinqToSql 如何生成存储过程的输出结果
【发布时间】:2015-06-09 12:09:22
【问题描述】:

例如,您有一个带有标题的存储过程:sp_test 当您拖入 LinqToSql 时,它会生成 sp_testResult 类,并将存储过程输出列作为其属性。

我想知道LinqToSql如何区分存储过程的输出结果?

【问题讨论】:

  • 它在 SQL 服务器上运行一个查询,它将为您提供所需的所有信息。
  • 你确定你得到了所有你需要的信息!? sql server 中没有关于stored procedure的输出列名的任何信息。您可以使用INFORMATION_SCHEMA 来获取它们,但它只提供有关tablesuser defined functionsonly 的信息。
  • 啊,我明白你在说什么。它通过.NET 工作的方式是在通过SqlCommand 执行SP 时使用CommandBehavior.SchemaOnly。空结果集有足够的信息来描述输出列和类型。
  • 谢谢!你能用ANSWER的例子解释一下吗?

标签: .net linq stored-procedures linq-to-sql


【解决方案1】:

这是SqlCommandBuilder.GetSchemaTable(...) 发生的事情,可悲的是protected

SqlCommand command; // setup as SP

using (SqlDataReader reader = command.ExecuteReader(
             CommandBehavior.KeyInfo | CommandBehavior.SchemaOnly))
{
  return reader.GetSchemaTable();
}

生成的DataTable 将包含输出架构。

如果我没记错的话,你不必为这项工作传递参数。

【讨论】:

    猜你喜欢
    • 2014-12-02
    • 2019-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-07
    • 1970-01-01
    • 2020-01-06
    • 2021-03-27
    相关资源
    最近更新 更多