MySQL Entity Framework 6: Database First。如何创建类?

34
迄今为止,我一直在使用带有Visual Studio的EF6,主要是Code First,很少使用Database First。
为了导入一些测试数据,有人给我提供了一个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设计器
  • 然后呢?如何连接到MySQL?
附加说明 Mehmet向我推荐了MySql EF6 Support(谢谢Mehmet),这是我谷歌搜索时找到的第一个页面。也许这才是正确的方法,但我不理解它在说什么。第一步是添加连接字符串和引用(=安装nuget包)。我能做到这一点,但之后的所有操作对我来说都很困难。
  • 为MySql设置新的DbConfiguration类。新的DbConfiguration?哪个DbConfiguration类?在哪里,如何为MySQL设置它?
  • DbConfigurationTypeAttribute添加到DbContext中。遗憾的是,我还没有DbContext,这不是Code First,而是Database First:某个向导应该为我确定DbContext中的DbSets
因此,也许这是正确的方法,但对我来说太神秘了。

3
你可以在下面的链接找到你所需的内容: https://dev.mysql.com/doc/connector-net/en/connector-net-entityframework60.html - Mehmet
不,最终我使用了Dapper从旧数据库中读取所有数据,并使用Entity Framework Code-First将读取的数据插入新数据库。 - Harald Coppoolse
我相信你想要做的是脚手架。我也有过同样的情况。 - Napoli
1个回答

0
  1. 需要在NuGet管理员上安装一些NuGet
    microsoft.EntityFrameworkCore
    microsoftEntityFrameworkCore.Tools
    Microsoft.NETCore.App
    Pomelo.EntityFrameworkCore.MySQL
    
  2. 在安装完所有NuGet后,需要将以下代码应用到您的Package Console管理员中:
    Scaffold-DbContext 
    "Server=localhost;Database=database_name;User=root;Password=123456;" 
    "Pomelo.EntityFrameworkCore.MySql" -Outputdir Models
    

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接