【发布时间】:2011-11-12 03:02:41
【问题描述】:
是否有将 edmx 转换为代码优先的工具? 我知道不久前有人说 CTP 中出现了一个,但我找不到与此相关的任何更新。
MSDN forums 上有一个人写了自己的文章(尚不可用),但 EF 团队没有。
【问题讨论】:
-
在我看来,对于简单的情况,您只需使用自定义 T4 模板即可。
标签: .net entity-framework code-first edmx
是否有将 edmx 转换为代码优先的工具? 我知道不久前有人说 CTP 中出现了一个,但我找不到与此相关的任何更新。
MSDN forums 上有一个人写了自己的文章(尚不可用),但 EF 团队没有。
【问题讨论】:
标签: .net entity-framework code-first edmx
使用 EF6 工具和 Visual Studio 2013 或 Visual Studio 2012,您首先从数据库中获取选项代码(参见下面的屏幕截图)
如果您没有看到此选项,您需要安装适用于 Visual Studio 2012 和 2013 的 Entity Framework 6 Tools http://www.microsoft.com/en-gb/download/details.aspx?id=40762
这不会首先将 EDMX 转换为代码(如问题所要求的那样),但它可以先从现有数据库创建代码(我假设有人想从 EDMX 执行此操作,将拥有现有数据库,除非他们删除了他们的数据库)。
【讨论】:
截至 2013 年 1 月 30 日,EF Power Tools (Beta 3) 是最新版本的 EF 电动工具,适用于 EF4.2-EF6。
【讨论】:
What does it add to Visual Studio?>When right-clicking on a C# project>Reverse Engineer Code First
时代变迁。有几个生成器将使用 EDMX 作为源来创建代码优先实体和映射。扩展库中有几个。您最有可能想要使用的是 EF 5.x DBContextFluent Generator for C#。 http://visualstudiogallery.msdn.microsoft.com/5d663b99-ed3b-481d-b7bc-b947d2457e3c
还有 EF 5.x DbContect Generator,iirc 将映射信息放在模型上。
安装其中任何一个后,您可以编辑 EDMX 并右键单击“添加代码生成项”。这将安装 .tt 模板并生成实体类、DbContext 类和映射文件。
请注意,如果您有任何带有验证的部分,如果您将它们放在与 edmx 相同的文件夹中,并且与实体名称相同,它们将被覆盖。您只需要重命名这些部分,因为生成器确实将部分关键字放在实体上,或者更好的是,将该代码移动到新生成的实体类中。
一旦这些文件就位,您就可以删除 .tt 文件和 .edmx 文件,然后继续在代码中维护您的实体。
【讨论】:
没有这样的工具,因为 EDMX 提供了更多无法转换为代码优先的功能。唯一可用的工具是EF Power Tools CTP1,它允许从现有数据库创建代码优先映射,但它只会创建数据库的 1:1 映像 = 基于数据库的命名、无继承、无拆分等。电动工具还允许创建读取仅来自现有代码优先映射的 EDMX。
【讨论】: