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

时间:2017-01-16 09:04: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?

加成

穆罕默德把我推荐给MySql EF6 Support(感谢穆罕默德),这是我用Google搜索时首先出现的页面。也许这是正确的方法,但我不明白它说的第一步:添加连接字符串并添加引用(= install nuget package?)我可以管理,但之后它全部都是希腊语给我:

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

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

1 个答案:

答案 0 :(得分:-1)

  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
    

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