存储过程中有两个以上的结果集

时间:2015-03-24 11:17:10

标签: c# stored-procedures entity-framework-6

我遵循了使用Entity Framework在存储过程中返回多个结果集的指导。在这里找到:

但是,如果返回第3个结果集,则在客户端代码调用GetNextResult<T>之后会出现错误:

  

ExecuteFunction中的类型参数'db.GetShippingItems'与函数返回的类型'db.GetProductDetails'不兼容。

GetProductDetails是第二种返回类型。第一个是GetProduct。我向FunctionImportMapping文件中的.edmx元素添加了第3个ResultMapping。

FunctionImport如下:

<FunctionImport Name="GetProduct">
   <ReturnType Type="Collection(db.GetProduct)" />
   <ReturnType Type="Collection(db.GetProductDetails)" />
   <ReturnType Type="Collection(db.GetProductShippingItems)" />
   <Parameter Name="ProgId" Mode="In" Type="Int32" />
</FunctionImport>

1 个答案:

答案 0 :(得分:1)

要获得第三个结果集,您需要对第二个结果集等使用GetNextResults()。

//Get second result set
var products = results.GetNextResult<Product_SprocResult>();
categProd.Products.AddRange(products);

//Get third result set
var statuTypes = products.GetNextResult<StatusType_SprocResult>();                
categProd.StatusTypes.AddRange(statuTypes);

http://www.codeproject.com/Articles/675933/Returning-Multiple-Result-Sets-from-an-Entity-Fram?msg=5034933#xx5034933xx