【问题标题】:Blazor with Database First具有数据库优先的 Blazor
【发布时间】:2020-05-14 06:44:16
【问题描述】:

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

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

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

【问题讨论】:

  • 你可以试试 EF Reverse POCO Code First Generator github.com/sjh37/…。并且要编辑 TT 文件,您可以使用 Resharper 插件 ForTea。
  • @MichaelWashington 这个网站很棒!我不知道它存在,谢谢你指点我。编辑:仅供参考 - 我正在尝试支持您的评论,但它不允许我说我已经这样做了!不知道发生了什么,但想确保你知道我试图这样做。
  • 没关系,它只是一个链接:)
  • Michael 的链接失效了,我猜这是同一篇博文:blazorhelpwebsite.com/ViewBlogPost/34 它展示了 EF Core Power Tools 生成类的方法。

标签: entity-framework-core visual-studio-2019 blazor ef-database-first


【解决方案1】:

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

<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">

将您的数据库连接字符串添加到 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;"
  }
}

打开 PackageManagerConsole 并输入

Scaffold-DbContext -Connection name=MyConnection -Provider Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Context MyDbContext -Force

这将在您的项目中创建一个 Models 文件夹,其中包含 MyDbContext.cs 和一个 数据库中每个表的&lt;TableName&gt;.cs-file。

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 这是唯一对我有用的解决方案,谢谢!
    【解决方案3】:

    Rene 的回答是正确的,只需要修改 2 处:

    您需要在最后一个包引用的 > 之前添加 /。

    您还需要参考“Microsoft.EntityFrameworkCore.Design”Version="3.1.1"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-20
      • 1970-01-01
      • 2021-05-22
      相关资源
      最近更新 更多