繁体   English   中英

使用EF 5(而不是4.x)

[英]Using EF 5 (and NOT 4.x)

我现在已经浪费了几天试图让EF重新工作。 据我所知,即使我一直在尝试使用EF5,我的项目也有一些对EF4的引用。

有人可以指出我需要采取的所有步骤,以便从我的计算机中消除所有与EF4相关的开发参考(如果我有使用它的第三方.net应用程序,很好-我只是不想在我的任何开发中使用它) )

现在,似乎没有任何作用,因为EF的2个版本似乎相互竞争-即使当我开始一个新项目时。

另外,如果我仅使用EF 5,则当我想创建新的EF类时,是否要使用“ ADO.NET实体数据模型”或“ EF 5.x DbContext Generator”? 我认为第一个似乎是第二个,似乎想创建一个tt文件,而不是edmx文件,但是我想我会检查一下,以防我遗漏了一些明显的东西...

我正在使用C#在运行VS 2012的Win 8系统上进行开发,并且正在编写一个大型桌面WPF应用程序(1个解决方案,许多项目,大量数据。)

FWIW-我当前无法使用的解决方案文件夹中的packages文件夹具有EntityFramework.5.0.0,因此我知道已经安装了EntityFramework.5,我只需要从它们继续感染我项目的位置消除EF 4.x引用。 是的,很多时间都花在寻找可以解决问题的答案上,但是我发现的任何事情似乎都无法解决。

最糟糕的是,在某一时刻,它一切正常,没有问题-然后,我尝试通过Nu-Get重新安装EF 5来修复某些问题,此后一直没有任何效果。

谢谢

不知道这是否可以解决您的问题,但可能会有所帮助...当您使用nuget时,它将操纵您的解决方案:

  • EF nuget软件包已添加到解决方案根目录的\\ packages \\文件夹中
  • 将在您使用nuget的解决方案中为每个项目创建一个packages.config文件
  • 在项目文件中添加了参考(对于c#,*。csproj)

有时您可能需要更改nuget所做的事情,因此可以在这些区域中进行检查。 在您的情况下,最好手动删除两个EF版本,然后在使用nuget或任何适合的方法中添加EF5。

听起来您可能已经删除了EF软件包,但没有整理package.config和项目文件,所以请先检查一下(在VS解决方案关闭时,您将要对其进行编辑)。

您正在寻找从每个packages.config文件中删除以<package id="EntityFramework"...开头的行。

如果您希望从解决方案中完全删除nuget,则csproj文件具有带有<Content Include="packages.config" /><itemgroup> <Content Include="packages.config" /> -删除整个项目组,可能有其他对此文件的引用错过了,您也要删除它们。

否则,如果您只是在删除EF内容之后,请查找具有您的引用的<itemgroup> ,并确保不存在不需要的EF版本的引用。

我认为这就是您所需要的-在进行这些更改后在VS中重新加载解决方案时,您的引用应该正确。

我已经放弃了。 太浪费时间了。 我从头开始创建了一个新的解决方案,并首先构建了EF项目,并确保它可以工作。 那行得通。 因此,现在我要系统地引入其他项目,并按需要进行备份,直到将所有其他项目都恢复到新解决方案中为止。

一个大的皮塔饼。 我真的希望MS有一个能够显示项目引用的所有程序集的工具-名称,程序集位置和引用该程序集的模块-这样就可以轻松解决这些问题。

再次感谢你的帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM