1
List<GetAllDataResult> list = myContext.GetAllData(id).ToList();

因此,考虑上面使用实体框架对存储过程的调用。当我调用它时,我期望返回 5 行(我将枚举)但调用只返回一行 - 看起来像第一行。

这是EF设计器代码中的方法: public ObjectResult GetAllData(Nullable id)();

为什么它不返回列表。

当我在 Sql Server Management Studio 中手动运行 SP 时,我得到了正确的列表。有任何想法吗?

更新:正在执行的存储过程如下:

Select id, Name, age from Person where lid = @id

在 SQL 探查器中,我可以看到如下调用:

exec [dbo].[GetAllData] @id=2
4

1 回答 1

0

在您的 EF 设计器中,您可以检查您的映射吗?

我的假设是,如果您从数据库自动生成实体,它实际上是将您的@ID参数映射到Person.

我的意思是,当 EF 生成 SQL 时,它很可能正在生成:

     Select id, Name, age from Person where id = @id

这可以进一步检查以查看返回的行是否ID为 2,而不是lid

于 2012-11-14T16:48:15.037 回答