之前的文章总结了MSSQL如何使用EF Code First,这篇文章总结下如果使用Mysql的数据库如何使用EF Code First,几种方式类似,只是部分细节有所差异
Mysql需要引用:Mysql.Data和Mysql.Data.Entity两个库,注意版本问题
Mysql.Data和Mysql.Data.Entity最新版是6.10.4但是需要使用.Net Framework 4.5.2
.Net Framework 4.5那么需要使用Mysql.Data和Mysql.Data.Entity的版本是6.9.10
第一步:建立实体类(和上一篇文章一样,只是用来演示,就没改)
例如:用户类(测试用,没写那么多,只有简单的创建时间,用户昵称和唯一标识),这个类是数据库中的表映射到C#中的对象,所以可以说是C#中对象,也可以说是数据库中的表。
public class UserTable
{
public string Id { get; set; }
public DateTime BuildTime { get; set; }
public string NickName { get; set; }
}
第二步:建立数据库上下文,Sqlite在这之前需要创建一个配置类,这里可以先不创建,根据需要自行建立即可
创建类DbModels,也可以直接创建ADO.NET 实体数据模型,然后选择空CodeFirst模型
内容如下(注意类头上的标签,是必须的):
[DbConfigurationType(typeof(MySqlEFConfiguration))]
public class DbModels : DbContext
{
//构造方法,base("这里是使用的ConnectString"),设置连接字符串
public DbModels() : base("name=DbModels")
{
}
public virtual DbSet<UserTable> User { get; set; }
}
第三步:配置文件(这次只需配置连接字符串即可)
connectionStrings节点下,设定在应用程序根目录创建
<add name="DbModels" providerName="MySql.Data.MySqlClient" connectionString="server=服务地址;port=3306;database=数据库名;uid=root;password=密码"/>
第四步:可以在程序的入口载入初始数据,读取数据,添加数据或修改数据后,注意使用SaveChanges()方法保存数据到数据库
如果还是不可以,请下载安装以下两个插件(我做测试时,这两个插件已经安装了,所以不知道对该操作有无影响):
Mysql for Visual Studio:https://dev.mysql.com/downloads/windows/visualstudio/?spm=5176.100239.blogcont51734.9.PnyAV2
Connector/Net:https://dev.mysql.com/downloads/connector/net/?spm=5176.100239.blogcont51734.10.PnyAV2
参考文档:https://dev.mysql.com/doc/connector-net/en/connector-net-entityframework60.html