使用命令行如何在 ASP.NET 中首先从 DB 搭建脚手架 - 而不是 ASP.NET Core MVC?

Posted

技术标签:

【中文标题】使用命令行如何在 ASP.NET 中首先从 DB 搭建脚手架 - 而不是 ASP.NET Core MVC?【英文标题】:Using command line how to do scaffolding from DB first in ASP.NET - not ASP.NET Core MVC? 【发布时间】:2019-12-29 11:00:44 【问题描述】:

我正在编写一个应用程序,它需要在运行时从 DB-first 使用 ASP.NET MVC 脚手架。

它通过以下链接在 .NET Core 中测试 Cli 的脚手架:

https://www.learnentityframeworkcore.com/walkthroughs/existing-database

我知道如何在 .NET Core 中执行此操作 - 但我想要在 ASP.NET MVC 中 - 而不是 .NET Core

【问题讨论】:

使用实体,您应该能够连接到现有数据库,并让 Visual Studio 使用 VS 菜单在现有数据库和新 VS 项目之间创建映射和类。 我知道,但我想从命令行创建它,因为我会在运行时通过另一个应用程序进行 scafool​​ing 见下文:docs.microsoft.com/en-us/previous-versions/sql/synchronization/… @jdweng 我读过,但我不明白这对我有什么帮助? 【参考方案1】:

EntityFramework DbContext 曾经是一个 GUI 工具,它以相当直接但多步骤的过程构建 DbContext。这就是在 .NET Framework 中构建 DbContext 模型的方式。该工具已在最新的 .NET“Core”5 中删除。现在它是 NuGet 包管理器中名为 Scaffold-DbContext 的单个 CLI 过程。即

Scaffold-DbContext "Server=win2k22.xxxx.xxxx;initial 
catalog=IdentityWorldDb;user 
id=XXX;password=XXXXXXX;MultipleActiveResultSets=True;App=EntityFramework""  
Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Force

在项目的 Model 文件夹中创建 DbContext 是一个很好的单步工作。 .NET Core 5 的模型文件夹。我把它作为一个单独的类项目 然后,如果您在同一解决方案中创建第二个 .NET Core 5 MVC 项目,则可以在类项目中引用 DbContext 模型。 这似乎非常适合在 MVC 中创建视图,但由于某种原因,它目前不适用于脚手架控制器。 基本上 EntityFramework 在 .NET Framework 和 .NET Core 5 之间似乎在所有方面都是独一无二的。

【讨论】:

以上是关于使用命令行如何在 ASP.NET 中首先从 DB 搭建脚手架 - 而不是 ASP.NET Core MVC?的主要内容,如果未能解决你的问题,请参考以下文章

如何从现有 SQL DB ASP.Net MVC 4 在下拉列表中填充数据

显示从 ASP.NET MVC 中的命令行进程获取的数据

如何通过 ASP.net 网站将新条目插入 Access db 表?

如何使用 ASP.NET OLEDB 向数据库中添加一行?

如何使用asp.net核心从数据库中的特定行下载图像

如何使用 jquery 从 asp.net 视图模型中动态删除行而不删除集合中的其余下一个对象