是否有将edmx转换为代码优先的工具? 我知道有人说过一段时间在CTP中出现过,但我找不到与此有关的任何更新。
MSDN forums上有一个人写了他自己的(现在还没有),但没有来自EF团队。
答案 0 :(得分:29)
使用EF6工具&在Visual Studio 2013或Visual Studio 2012中,您首先从数据库中获取选项代码(参见下面的屏幕截图)
如果您没有看到此选项,则需要安装适用于Visual Studio 2012的实体框架6工具& 2013 http://www.microsoft.com/en-gb/download/details.aspx?id=40762
这不会首先将EDMX转换为代码(如有问题的要求),但它可以首先从现有数据库创建代码(我假设有人想从EDMX执行此操作,将拥有现有数据库,除非他们删除了他们的数据库。)
答案 1 :(得分:27)
时代变了。有几个生成器将使用EDMX作为源创建代码优先实体和映射。扩展库中有几个。您最有可能想要使用的是用于C#的EF 5.x DBContextFluent Generator。 http://visualstudiogallery.msdn.microsoft.com/5d663b99-ed3b-481d-b7bc-b947d2457e3c
还有EF 5.x DbContect Generator,iirc将映射信息放在模型上。
安装完其中任何一个后,您可以编辑EDMX并右键单击“添加代码生成项”。这将安装.tt模板并生成实体类,DbContext类和映射文件。
请注意,如果您有任何部分验证,如果您将它们放在与您的edmx相同的文件夹中,并且与实体的名称相同。您只需要重命名这些部分,因为生成器确实将partial关键字放在实体上,或者更好的是,将该代码移动到新生成的实体类中。
一旦这些文件到位,您就可以删除.tt文件和.edmx文件,并继续在代码中维护您的实体。
答案 2 :(得分:11)
没有这样的工具,因为EDMX提供了更多无法转换为代码优先的功能。唯一可用的工具是EF Power Tools CTP1,它允许从现有数据库创建代码优先映射,但它只会创建数据库的1:1图像=基于数据库的命名,没有继承,没有拆分等。电动工具也允许从现有的代码优先映射创建只读EDMX。
答案 3 :(得分:0)
截至2013年1月30日,EF Power Tools (Beta 3)是EF Power Tools的最新版本,可与EF4.2-EF6配合使用。