本帖最后由 QWERTYU 于 2020-7-3 14:43 编辑
前提:
操作步骤: 1:添加ADO.NET 实体数据模型,选择CodeFirst模型。
2:添加MySql.Data.Entity的引用(注意版本要和本机中安装的一致)。
3:添加修改连接字符串,(如果是新建的类库,则应该在应用程序配置文件中手动添加连接字符串。)
4:添加一个测试的用户类。
5:打开nuget程序包管理控制台,选中对应项目。执行enable-migrations命令,会生成存放版本号的文件夹Migrations
6:在生成的Migrations文件夹下,Configuration类的构造函数里加上:SetSqlGenerator("MySql.Data.MySqlClient", new MySql.Data.Entity.MySqlMigrationSqlGenerator());
7:执行add-migration命令,输入一个版本号的名字。(以后每次修改模型,都需要执行这一步操作)
8:执行update-database命令( Update-Database -Verbose 加个-Verboses 可以查看生成的sql语句),执行完此命令后,数据库会最终生成(以后每次修改模型,都需要执行这一步操作)
错误问题解决: 1:执行Enable-Migrations,报错:未解析成员“System.Data.Entity.Migrations.Design.ToolingFacade+GetContextTypeRunner,EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”的类型。 解决方案:查看类库和应用程序使用的EntityFramework版本是否一致,我的类库里面是6.2.0,应用程序里面是6.1.3,把应用程序里改成6.2.0,再次执行未报错。
2:执行Add-Migration,报错:未为提供程序“MySql.Data.MySqlClient”找到任何 MigrationSqlGenerator。请在目标迁移配置类中使用 SetSqlGenerator 方法以注册其他 SQL 生成器。 解决方案:在构造函数中加入SetSqlGenerator("MySql.Data.MySqlClient", new MySql.Data.Entity.MySqlMigrationSqlGenerator());
|