MySQL 实体框架 6:数据库优先。如何创建类?

问题描述 投票:0回答:1

直到现在我一直在使用 EF6 和 Visual Studio,主要是代码优先,很少数据库优先。

要导入一些测试数据,有人给我连接到 MySQL 中的数据库。在 MySql Workbench 中,我可以查询数据,因此连接有效。

现在我想创建一个 Entity Framework Database First 项目并导入数据库模型。在 Visual Studio 中

  • 创建项目,
  • 添加 nuget: Entity Framework 最新版本 (6.1.3)
  • 添加 nuget:适用于 EF 6 的 MySql.Data.entities
  • 添加新项目

现在呢?有一个 EF 6.X

DbContext
生成器,但是在我得到模型之前,那个生成器不起作用

我可以做我平时做的事情:

  • 选择 ADO.NET 实体数据模型
  • 来自数据库的 EF Designer
  • 现在呢?如何连接MySql?

加法

Mehmet 向我推荐了 MySql EF6 Support(感谢 Mehmet),这是我用谷歌搜索时第一个出现的页面。也许这是正确的方法,但我不明白它说的是什么第一步:添加连接字符串并添加引用(=安装 nuget 包?)我可以管理,但之后对我来说都是希腊语:

  • 为 MySql 设置新的 DbConfiguration 类。
    DbConfiguration
    班级
    ?哪个
    DbConfiguration
    班?在哪里以及如何为 MySQL 设置它?
  • DbConfigurationTypeAttribute
    添加到
    DbContext
    。 las,我还没有
    DbContext
    ,这不是代码优先,而是数据库优先:某些向导应该为我确定
    DbSets
    中的
    DbContext

所以也许这是要走的路,但这对我来说太神秘了。

mysql entity-framework ef-database-first
1个回答
0
投票
  1. 需要在你的 NuGet 管理员上安装一些 NuGet
    microsoft.EntityFrameworkCore
    microsoftEntityFrameworkCore.Tools
    Microsoft.NETCore.App
    Pomelo.EntityFrameworkCore.MySQL
    
  2. 拥有所有 NuGet 后,您需要将此应用到您的包控制台管理员:
    Scaffold-DbContext 
    "Server=localhost;Database=database_name;User=root;Password=123456;" 
    "Pomelo.EntityFrameworkCore.MySql" -Outputdir Models
    

这将为您的所有模型创建一个上下文,还将为您的数据库创建一些模型。

© www.soinside.com 2019 - 2024. All rights reserved.