MySql实体框架6:数据库优先.如何创建课程?

Har*_*lse 13 mysql entity-framework ef-database-first

到目前为止,我一直在使用EF6和Visual Studio,主要是代码优先,很少是数据库优先.

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

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

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

现在?有一个EF 6.X DbContext发生器,但是在我得到模型之前它不起作用

我可以做我通常做的事情:

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

加成

Mehmet向我推荐了MySql EF6支持(感谢Mehmet),这是我用Google搜索时首先出现的页面.也许这是正确的方法,但我不明白它说的第一步:添加连接字符串并添加引用(= install nuget package?)我可以管理,但之后它对我来说都是希腊语:

  • 为MySql设置新的DbConfiguration类.DbConfiguration课程?哪个DbConfiguration班?在哪里,以及如何为MySQL设置它?
  • 添加DbConfigurationTypeAttributeDbContext.唉,我还没有得到DbContext的是,它不是第一个代码,但数据库首先:一些向导应该确定DbSetsDbContext我.

也许这就是要走的路,但这对我来说太过隐秘了.

小智 0

  1. 需要在您的 NuGet 管理员上安装一些 NuGet
    microsoft.EntityFrameworkCore
    microsoftEntityFrameworkCore.Tools
    Microsoft.NETCore.App
    Pomelo.EntityFrameworkCore.MySQL
    
    Run Code Online (Sandbox Code Playgroud)
  2. 拥有所有 NuGet 后,您需要将其应用到程序包控制台管理员:
    Scaffold-DbContext 
    "Server=localhost;Database=database_name;User=root;Password=123456;" 
    "Pomelo.EntityFrameworkCore.MySql" -Outputdir Models
    
    Run Code Online (Sandbox Code Playgroud)

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