优先使用数据库的 Blazor

Stp*_*111 8 ef-database-first entity-framework-core blazor visual-studio-2019

我正在尝试在 Visual Studio 2019 中使用 Blazor 构建一个简单的 CRUD 应用程序 - 我在 YouTube、PluralSight 和 Channel 9 之间观看了超过 7 个教程,并且在所有这些教程中,他们使用 Entity Framework Core 从以下位置创建数据库和表在 Visual Studio 中,这是可以理解的,因为代码优先是理想的架构。

但是,我的数据库和表已经存在,第一步,我只想将 Blazor 应用程序连接到一个表并将其读入 UI 列。

我将如何完成在 Visual Studio 2019 中导入现有数据库表的步骤?如果网络上有专门针对在 Blazor 中完成此操作的文档,请务必指出这一点,因为我无法在某些旧的 ASP.Net MVC 文档之外找到任何内容。

Ren*_*ené 8

将以下包添加到您的项目中:

<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="3.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.1.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.1">
Run Code Online (Sandbox Code Playgroud)

将您的数据库连接字符串添加到 appsettings.json

{
  "ConnectionStrings": {
    "MyConnection": "Server=tcp:<yourServer>,1433;Initial Catalog=<yourDatabase>;Persist Security Info=False;User ID=<yourDatabaseUserName>;Password=<yourDatabaseUserPassword>;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=True;Connection Timeout=30;"
  }
}
Run Code Online (Sandbox Code Playgroud)

打开 PackageManagerConsole 并输入

Scaffold-DbContext -Connection name=MyConnection -Provider Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Context MyDbContext -Force
Run Code Online (Sandbox Code Playgroud)

这将在您的项目中创建一个Models文件夹,其中包含MyDbContext.cs以及<TableName>.cs数据库中每个表的 -file。

注意:对于数据库的第一次导入,您不需要脚手架中的-Force选项。但是,如果您在第一次导入后对数据库进行了更改并希望之后更新您的 cs 类,则将需要它。


boi*_*iil 5

在我们公司,我们使用EF Core Power Tools为 Entity Framework Core 生成上下文和模型类。

您可以在https://github.com/ErikEJ/EFCorePowerTools/wiki/Reverse-Engineering下找到相应的文档。使用此工具,您可以直接在 Visual Studio 中生成类,还可以存储配置,以便在数据库更改时轻松更新类。