使用.SqlQuery和Entity Framework处理来自存储过程的多个结果集

时间:2019-05-10 10:28:04

标签: sql entity-framework entity-framework-6

我正在尝试从存储过程中返回2个结果,即PageCount和行列表。

我创建了一个对象:

public class MyData
{
    public int PageCount {get;set;}
    public ICollection<MyRowObject> Items {get;set;}
}

,我正在调用以下EF代码:

var result = this.Database.SqlQuery<T>('EXEC MySP @param1', parameters)
                          .FirstOrDefault();

但是,当我运行它时,它仅返回PageCount,而包含行的Items集合被设置为null。

SP在SQL中执行时肯定可以正常工作,因为它会返回PageCount和匹配行的列表。

有什么想法为什么不能解决这个问题?

谢谢

请注意,我在StackOverflow上发现了各种问题,但是它们都使用reader,我很好奇是否可以使用.SqlQuery来实现。

更新1:

我不知道这是否可以实现,但是我想分享一下此链接,因为这是一篇写得很好的文章,但再次使用Reader

Entity Framework 6 Multiple Result Sets with Stored Procedures

1 个答案:

答案 0 :(得分:0)

要使用存储过程中的实体框架返回多个结果集,请参见以下链接。我认为这对您有用。

https://www.codeproject.com/Tips/1072284/Return-Multiple-Result-Set-using-Entity-Framework