我们在 MS SQL Server 中使用 EF5.0 和代码优先方法
我读过一篇文章
http://msdn.microsoft.com/en-us/data/jj691402.aspx

并决定在我们的数据库上尝试相同的方法

但是,假设我的商店过程包含这样的查询

SELECT * from [dbo].[MyEntities] as MyEntity
    where ID = @ID

C# 中的代码是
var entities = Context.ObjectContext.Translate<MyEntity>(reader, "MyEntity", MergeOption.AppendOnly);

我在这一点上



因此,显然它添加了一些上下文名称作为 EntitySet 名称的前缀,而不是 MyEntity 在结果集中寻找 MyDbContext.MyEntity 。

是什么导致了这种行为以及是否有任何解决方法(因为在我上面引用的示例中,它看起来非常直接和简单,并且不需要特定的操作,除了调用 db.Database.Initialize(force: false); (我在我的代码中这样做)还有)

最佳答案

我有同样的异常(exception),即使我没有在我的选择函数中使用别名。
我最终使用 的重载方法翻译 只传递阅读器。我已经知道选择函数的顺序,所以我不需要传递 EntitySet 名称。

var entities_1 = Context.ObjectContext.Translate<MyEntity_1>(reader);
reader.NextResult();
var entities_2 = Context.ObjectContext.Translate<MyEntity_2>(reader);

关于c# - 尝试从存储过程读取多个实体结果集时出现问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24564120/

10-16 08:44