【问题标题】:Linq to SQL Select in Stored Proc存储过程中的 Linq to SQL 选择
【发布时间】:2009-05-17 19:25:11
【问题描述】:

我有一个通过 LINQ to SQL 调用的存储过程,存储过程调用其中的另一个存储过程,并有一个 SELECT 来输出结果。 SELECT 结果没有返回到我的 LINQ to SQL,我只能获取 int 结果值。如何在存储过程中获取存储过程的选择结果

【问题讨论】:

    标签: sql linq-to-sql


    【解决方案1】:

    LINQ 设计器无法准确解析您的存储过程以确定架构。一种解决方法是将您的存储过程临时更改为适当模式的简单选择。在设计器中重新映射它。然后,将存储的过程改回原来的。通过这种方式,设计人员能够找出架构并将其正确映射到正确的实体。

    【讨论】:

    • 我追求的选择结果是一个标量 int 结果但 linq 仍然看不到它
    • 把你的 sp 改成只选择 1;,然后解析它,然后再改回来。会有用的。
    • 我不得不将其更改为一个查询,该查询将返回多个结果供 linq 选择结果类型。谢谢大家
    【解决方案2】:

    从 Sql Server Management Studio 调用存储过程时,是否返回多个行集?

    如果是这种情况,使用 LINQ 中的存储过程并非易事,请参阅 this article

    使用 DataReader 中的 NextResult 方法可以轻松读取多个结果:

    var com = yourConnection.CreateCommand();
    com.CommandText = "execute dbo.YourSp 'par1'";
    var read = com.ExecuteReader();
    // Move to second result set and read it
    read.NextResult();
    while (read.Read()) {
        Console.WriteLine(read["MyField"]);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-14
      • 1970-01-01
      • 2010-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多