我正在使用EF 6 beta1。我有一个简单的存储过程,返回两个结果集:
ALTER PROCEDURE GetItemsByParentId
@parentID int
SELECT * FROM Table1 WHERE ParentID = @parentID
SELECT * FROM Table2 WHERE ParentID = @parentID
我想使用我的ObjectContext调用该存储过程。我首先使用数据库而且我有一个edmx,但如果我不需要,我不想将存储过程作为函数导入。
我创建了两个简单的类Table1DTO和Table2DTO来存储存储过程的结果。对于第一个结果集,我称之为:
var result1 = ExecuteStoreQueryAsync< Table1DTO>(“EXEC GetItemsByParentId @parentID”,新的SqlParameter(“parentID”,parentID));
列出table1DTOList = result1.ToList();
工作正常。然后对于第二个结果集,我正在尝试这个:
var result2 = result.GetNextResult<表2DTO>();
list improvementDetailInfos = result2.ToList();
问题是result2返回null。我错过了什么?
答案 0 :(得分:0)
这可能听起来像分裂头发,但实体框架支持多个结果集。问题是实体框架工具不。这是EF 4.1 / 4.2以来的一个问题。所以你有三个选择(我能想到):
GetItemsByParentId
说实话,我已经在很多场景中与之搏斗,但没有一个选项很棒。如果你是受虐狂的话,我wrote up an example和answered a question就如何为多个结果集编辑EDMX。