43

我刚刚下载了实体框架 6 并创建了一个全新的项目来测试它。我们目前使用 EF 5。

添加所有表和存储过程后,我尝试构建项目,但出现错误:

“System.Data.Objects.ObjectParameter”类型的值无法转换为“System.Data.Entity.Core.Objects.ObjectParameter”。

“System.Data.Entity.Core.Objects.ObjectResult(Of DataLibrary.MyStoredProc_Result)”类型的值无法转换为“System.Data.Objects.ObjectResult(Of DataLibrary.MyStoredProc_Result)”。

我无法弄清楚为什么这不能开箱即用

EF 5 就有这样的问题。

我正在使用 VS 2012..Net 4.5 Vb.net(也尝试使用 C# 项目......同样的问题)

有任何想法吗?

编辑

答案是为 VS 2012 安装 EF6 工具。我不知道我必须这样做,因为我认为在添加实体框架包时已安装。

4

3 回答 3

98

您可以通过替换来克服这种情况:

using System.Data.Objects;

和:

using System.Data.Entity.Core.Objects;

您可能需要更新usingT4 模板中的语句,例如 Context.tt 文件,以便自动生成的文件在重新生成时继续工作。

在此处输入图像描述

在此处输入图像描述

于 2013-12-16T17:34:55.170 回答
38

我猜您正在使用 VS2012 中的 EF 工具,这些工具仍然绑定到原始 EF 发行版(.NET 框架的一部分)。EF6 使用带外分发,它不适用于以前的工具 - 这就是为什么这些类型有一点不同的命名空间并且不能从一种转换到另一种的原因。

解决方案应该是下载和安装适用于 VS2012 的EF6 工具或使用 VS2013,其中应包含工具。

于 2013-10-29T15:30:45.833 回答
1

我使用了对我有用的“Pauly Glott”。有关更详细的信息,请参阅我在 Microsoft 论坛中的帖子和答案。

http://social.msdn.microsoft.com/Forums/en-US/9ac881f5-18f5-4aa4-bd99-94b1fa4c37c2/why-i-am-getting-errors-like-value-of-type-systemdataobjectsobjectparameter-cannot- be?forum=adodotnetentityframework

于 2014-01-02T14:47:22.753 回答