EF关于Mysql如何自动生成数据库表
Posted 盗哥泡茶去了
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EF关于Mysql如何自动生成数据库表相关的知识,希望对你有一定的参考价值。
相对于sqlserver数据库,mysql的配置过程相对麻烦一些,我们从0讲起。
1.新建一个控制台应用程序
右键点击引用--管理NuGet程序包,搜索Mysql.Data.Entity并安装,安装完成后在已安装选项下会有以下三项:
在App.config文件中添加:
<connectionStrings>
<add name="conn" connectionString="server=localhost;port=3306;uid=root;pwd=123;database=testdb;" providerName="MySql.Data.MySqlClient" />
</connectionStrings>
2.分别新建实体类Person,配置类PersonConfig,上下文类MyDbContext
注:因为Name是string类型,映射到mysql中是longtext,而mysql支持最大长度为767bytes,所以要限制长度。
3.单击程序包管理器控制台
输入:EntityFramework\\Enable-Migrations并回车
在项目下会自动创建一个Migrations文件夹
4.输入EntityFramework\\Add-Migration InitModel 注:InitModel为本次迁移的名字,可自定义修改
会提示错误
因为vs默认配置的是sqlserver数据库,所以我们要手动更改为启动mysql的sql生成器
在Migration文件夹中的配置类Congifuration的构造方法中:
同时还要在上下文类中配置mysql
再次输入命令
5.输入命令EntityFramework\\Update-Database -v
在数据库中刷新,已经创建好表了
运行项目,插入数据成功。
当实体类属性有变化时,执行第4步和第5步就可以了。
以上是关于EF关于Mysql如何自动生成数据库表的主要内容,如果未能解决你的问题,请参考以下文章
EF6添加mysql的edmx实体时报错:无法生成模型:“System.Data.StrongTypingException: 表“TableDetails”中列“IsPrimaryKey”的值为 D
EF生成模型出现异常:表“TableDetails“中列“IsPrimaryKey”的值为DBNull解决方法