是否存在实体框架7数据库优先POCO生成器?

时间:2015-03-27 12:33:15

标签: c# sql-server asp.net-core entity-framework-core

我一直在玩Entity Framework 7和ASP.NET 5来处理我正在开发的新项目,但我遇到了障碍。我正在研究的团队使用DBA优先的方法进行开发;即数据库由DBA设计,然后开发人员更改代码以补偿模型更改。

使用EF6,这很有效,因为我们可以使用EDMX设计器的“更新”功能更新代码。点击一下,我们就可以获得新课程了,我们已经完成了。但是,在EF7中,一切都不同。没有更多的设计师,我们应该使用Code-First,根据EF团队的一些博客文章,它也应该支持“数据库优先”代码生成。

但是,我无法弄清楚如何在ASP.NET 5应用程序中使用Visual Studio 2015 CTP6。工具支持还没有,或者我运气不好?它甚至会出现吗?

4 个答案:

答案 0 :(得分:56)

在最新的位中,可以使用dnx命令提示符和PowerShell命令来执行此操作,是的

Scaffold-DbContext '<connectionString>' EntityFramework.MicrosoftSqlServer

dnx ef dbcontext scaffold "<connectionString>"  EntityFramework.MicrosoftSqlServer

或(来自EF Core RC2)

dotnet ef dbcontext scaffold "<connectionString>"  Microsoft.EntityFrameworkCore.SqlServer

您必须安装Microsoft.EntityFrameworkCore.Tools程序包才能使命令正常工作。

答案 1 :(得分:12)

这可以使用NuGet包管理器控制台或命令提示符完成。我尝试使用命令提示符。在命令提示符下导航到项目文件夹后,我使用了类似的命令:

dnx ef dbcontext scaffold "Data Source=myServerName; Initial Catalog=myDatabaseName; Integrated Security=True" EntityFramework.SqlServer

我收到了有关丢失的软件包的错误:

  

EntityFramework.Commands

     

EntityFramework.SqlServer.Design

在继续之前执行此命令:

dnu restore

所需的实际包可能会因 project.json 文件中提到的框架而有所不同。

如果您无法在命令提示符下执行dnx或其他相关命令,请按照另一个答案的评论中提到的THIS链接进行操作。

P.S。:这是当前的命令列表[在撰写本文时,最后更新时间为8月21日]:

ASP.NET - EntityFramework Wiki -- NuGet/DNX Commands

答案 2 :(得分:9)

以下是.NET Core的RC2的更新参数(2016年5月)

dotnet ef dbcontext scaffold -c RRStoreContext -o Model 
"Data Source=(local);Initial Catalog=DBNAME;Integrated Security=True"     
Microsoft.EntityFrameworkCore.SqlServer --force

请注意,Microsoft.EntityFrameworkCore.SqlServer是需要在命令中使用的程序包的新名称。我添加了force参数来覆盖现有文件。 'o'参数是输出目录名。它现在是dotnet而不是dnx

从当前版本开始,project.json中需要的依赖项

"dependencies": {
    "Microsoft.EntityFrameworkCore": "1.0.0-rc2-final",
    "Microsoft.EntityFrameworkCore.SqlServer.Design": "1.0.0-rc2-final",
    "Microsoft.EntityFrameworkCore.Tools": {
      "type": "build",
      "version": "1.0.0-preview1-final"
    }
  },

注意:'build'的类型意味着引用程序集的任何内容都不会将此DLL作为依赖项,因为它只需要工具。

答案 3 :(得分:2)

@ErikEJ为此开发了一个非常有用的工具。只需右键单击项目并为您提供SQL服务器实例即可生成POCO类。您可以从here下载它,并明确提到步骤here