我遵循了使用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>
答案 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);