SQL Server 是否存在实体Framework7数据库优先POCO生成器?

ikfrs5lh  于 2023-01-12  发布在  Framework7
关注(0)|答案(4)|浏览(166)

我一直在为我正在进行的一个新项目尝试EntityFramework 7和ASP.NET5,但是我遇到了一个障碍:我正在工作的团队使用DBA优先的开发方法;即数据库由DBA设计,然后开发人员修改代码以补偿模型的变化。
在EF 6中,这很好用,因为我们可以使用EDMX设计器的“update”功能来更新代码。单击一下,我们就可以得到新的类,这样就完成了。然而,在EF 7中,一切都不同了。没有更多的设计器,我们应该使用Code-First,根据EF团队的一些博客文章,它也应该支持“Database-First”代码生成。
然而,我无法弄清楚如何在ASP.NET5应用程序中使用VisualStudio 2015 CTP 6来实现这一点。工具支持已经到位了吗?还是我运气不好?它到底会不会到来?

5t7ly7z5

5t7ly7z51#

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

Scaffold-DbContext '<connectionString>' EntityFramework.MicrosoftSqlServer

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

或(来自EF核心RC2)

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

您必须安装Microsoft.EntityFrameworkCore.Tools软件包才能使命令生效。

xt0899hw

xt0899hw2#

这可以使用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

63lcw9qa

63lcw9qa3#

以下是.NET核心的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作为依赖项,因为它仅用于工具。

9nvpjoqh

9nvpjoqh4#

@ErikEJ为此开发了一个非常有用的工具。它只需要在项目上做右键点击就可以生成POCO类,并提供给你SQL Server示例。你可以从here下载它,here清楚地提到了步骤。

相关问题