2014-02-21 71 views
0

我正在尝试将大数据项目从EF 5升级到EF 6。但是当我在EF6工具中运行代码生成时,对相关表的引用不再存在。使用实体框架6与EntityKey

因此,下面的代码行不再起作用。

dbTradeAllocation.ChargeTypeReference.EntityKey = new EntityKey("ICEEntities.SystemData", "ID", TradeAllocation.ChargeType); 

有谁知道EntityKeys仍然支持在EF6?

感谢Paul

+0

支持EntityKey - 您正在运行哪些代码生成?如果您正在运行EF5代码生成,那么生成的代码将无法在EF6上运行,因为名称空间中存在更改。它可能与您的代码生成没有直接关系,但是我在博客文章http://blog.3d-logic.com/2013/11/10/what-c​​hanged-in-the-ef- tool-in-visual-studio-2013-and-visual-studio-2012-out-of-band/- 您需要使用EF6兼容版本的代码生成器。 – Pawel

+0

谢谢,我需要使用EF6的[实体对象代码生成器[链接](http://visualstudiogallery.msdn.microsoft.com/66612113-549c-4a9e-a14a-f629ceb3f89a)。所以我的遗留代码不会中断。 Paul – PaulG

+0

对于EF6,您需要为EF6使用EntityObject生成器。你可以从这里得到它:http://visualstudiogallery.msdn.microsoft.com/66612113-549c-4a9e-a14a-f629ceb3f89a(注意它需要开发框上的.NET Framework 4.5) – Pawel

回答

1

EntityKey在EF6中受支持。但是,您无法在EF6中运行EF5代码生成 - 因为名称空间中发生了更改,所以无法运行。在我的博客文章中,我在VS2013中对EF工具的更改进行了一些调整 - 您可以找到博客文章here。如果你想在EF6中使用EntityObject/ObjectContext实体,你需要使用你可以从VS Gallery获得的EntityObject generator for EF6(注意它需要在开发盒上有.NET Framework 4.5)。

+0

您的链接无法使用。看起来很有用,所以如果你能更新这个评论,这将是有帮助的。 –

+0

@JonSmith - 我不知道发生了什么事。感谢您指出了这一点。我更新了链接。 – Pawel

+0

谢谢。现在都好。 –