19

我正在使用 .NET 4.5 构建一个 ASP.NET Web 表单网站。

错误 ...

The type 'System.ComponentModel.DataAnnotations.Schema.ForeignKeyAttribute' exists in both 'f:\Projects\web sites\RC1Iteration05\packages\EntityFramework.5.0.0\lib\net40\EntityFramework.dll' and 'c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.ComponentModel.DataAnnotations.dll'

我曾尝试使用...为库起别名

csc /r:EF_DataAnnotations="f:\Projects\web sites\RC1Iteration05\packages\EntityFramework.5.0.0\lib\net40\EntityFramework.dll" /r:CM_DataAnnotations="c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.ComponentModel.DataAnnotations.dll"

但这只会导致“未指定源文件”,这同样令人困惑,因为源文件是按指示指定的(此处此处)。

我确实注意到错误是引用 net40 文件夹中的 EF dll 而不是 net45 文件夹。我想如果我使用 net45 版本,问题会自行解决,但我不知道如何更改该引用。我将“targetFramework”属性更改为 packages.config 文件中的 EntityFramework 包,但这没有任何区别。

我有点卡住了,因为这两种解决方案似乎都没有做任何事情。

我环顾四周,发现这里有很多帖子,人们处理过类似的问题,但没有收到任何回复。我希望那里有人可以提供帮助!

谢谢

G

4

2 回答 2

44

如您所见,您在 .Net 4.5 上使用 .Net 4.0 版本的实体框架。
那是行不通的。

从 NuGet 重新安装 EF,它应该可以正常工作。

于 2013-07-22T15:51:09.890 回答
7

其他选项对我不起作用。起作用的是进入 \packages\EntityFramework.6.1.3\lib\ 并删除 net40 目录,然后进行全部重建。

于 2016-11-07T14:17:58.913 回答