我有一个通过LINQ to SQL调用的存储过程,存储的proc调用其中的另一个存储过程,并有一个SELECT来输出结果。 SELECT结果不会返回到我的LINQ to SQL,我只能得到int结果值。如何在存储过程中获取存储过程的选择结果
答案 0 :(得分:1)
LINQ设计器无法准确地解析存储过程以确定架构。一种解决方法是暂时将存储过程更改为简单选择正确的模式。在设计器中重新映射它。然后,将存储的proc更改回原始。通过这种方式,设计人员能够找出模式并将其正确映射到正确的实体。
答案 1 :(得分:0)
从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"]);
}