使用命令行如何在 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 项目之间创建映射和类。 我知道,但我想从命令行创建它,因为我会在运行时通过另一个应用程序进行 scafooling 见下文: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 在下拉列表中填充数据