C# 是否有实体框架7数据库第一个POCO生成器?

C# 是否有实体框架7数据库第一个POCO生成器?,c#,sql-server,asp.net-core,entity-framework-core,C#,Sql Server,Asp.net Core,Entity Framework Core,我一直在玩EntityFramework7和ASP.NET5的新项目,但我遇到了一个障碍。我工作的团队使用DBA优先的开发方法;i、 数据库由DBA设计,然后开发人员修改代码以补偿模型更改 使用EF6,这很好,因为我们可以使用EDMX设计器的“更新”功能来更新代码。单击一下,我们就得到了新的类,我们就完成了。然而,在EF7中,一切都是不同的。没有更多的设计器,我们应该先使用代码,根据EF团队的一些博客帖子,这也应该支持“数据库优先”代码生成 但是,我不知道如何在ASP.NET 5应用程序中使用V

我一直在玩EntityFramework7和ASP.NET5的新项目,但我遇到了一个障碍。我工作的团队使用DBA优先的开发方法;i、 数据库由DBA设计,然后开发人员修改代码以补偿模型更改

使用EF6,这很好,因为我们可以使用EDMX设计器的“更新”功能来更新代码。单击一下,我们就得到了新的类,我们就完成了。然而,在EF7中,一切都是不同的。没有更多的设计器,我们应该先使用代码,根据EF团队的一些博客帖子,这也应该支持“数据库优先”代码生成


但是,我不知道如何在ASP.NET 5应用程序中使用Visual Studio 2015 CTP6实现这一点。工具支架还在吗,还是我运气不好?它是否真的会出现呢?

在最新版本中,可以使用dnx命令提示符和PowerShell命令来实现这一点,是的

Scaffold-DbContext '<connectionString>' EntityFramework.MicrosoftSqlServer
Scaffold DbContext''EntityFramework.MicrosoftSqlServer

dnx ef dbcontext scaffold”EntityFramework.MicrosoftSqlServer
或(来自EF核心RC2)

dotnet ef dbcontext scaffold”“Microsoft.EntityFrameworkCore.SqlServer

必须安装Microsoft.EntityFrameworkCore.Tools软件包才能使命令正常工作。

这可以使用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或其他相关命令,请遵循另一个答案的注释中提到的链接

p.S.:这是当前的命令列表[在撰写本文时,上次更新于8月21日]:


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

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

从当前版本开始,
项目.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作为依赖项,因为它仅用于工具。

@ErikEJ为此开发了一个非常有用的工具。它只需右键单击项目即可生成POCO类,并为您提供SQL server实例。您可以从中下载它,并清楚地说明了步骤。

首先查找“反向工程代码”是的,我花了几天时间进行搜索。关于如何使用EF6实现这一点的信息很多,但对于EF7,似乎没有一种方法。目前,我已经创建了一个EF6项目,在那里做了反向工程,并将文件复制到了我的EF7项目中(由于EF7中不存在名称空间,所以做了一些修改),但从长远来看,我需要一个更稳定的解决方案。我认为它们的不同程度不足以产生如此大的差异。我认为EF7仍处于测试阶段,所以可能还没有完全支持它。作为对任何读者的警告,这个过程仍然充满了bug。这些答案可能会对您有所帮助,但在此阶段仍存在漏洞,有些人无法让它正常工作。VS2017更新:如果您使用的是最新、最棒的microsoft产品套件,以下是他们的教程:您能告诉我在何处运行此命令吗。。在哪里可以找到dnx命令提示错误。。为.NET Core RC2的新语法添加了一个单独的答案(2016年5月)。另外,值得注意的是--force标志覆盖了现有文件,-o是您要输出到的文件夹的名称。这通常是
模型
是指向此文档的链接。
dnu restore
dotnet ef dbcontext scaffold -c RRStoreContext -o Model 
"Data Source=(local);Initial Catalog=DBNAME;Integrated Security=True"     
Microsoft.EntityFrameworkCore.SqlServer --force
"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"
    }
  },