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