自己一个人看了好多文章,开始安装mysql的时候各种报错,各种不对和问题,所以写个blog,简单整理一下,关于mysql数据库安装已经有很多的文章了,所以就不说了,下面只简单说了一下环境变量配置和安装工具
系统:win10
工具:
visual studio 2013
mysql5.6 winx64 -----8.0以上各种脑残问题,还是原来的好
mysql-connector-net-6.8.1 ---最好不高于6.8.3
mysql-for-visualstudio-1.2.3 ---推荐
注意安装顺序和版本,非常重要
Mysql 图形用户界面(GUI):
Navicat for MySQL,也可以选择其他轻量型GUI
安装完成以上工具,完成mysql环境变量配置mysql,安装默认路径:C:\Program Files\MySQL,例如:C:\Program Files\MySQL\MySQL Server 5.6\bin
在系统变量中新建系统变量,变量名:HOME,值:C:\Program Files\MySQL\MySQL Server 5.6\bin
保存,然后同样也是系统变量中双击Path编辑,添加%MYSQL_HOME%\bin,保存退出
下面是C#代码
- 使用之前启用mysql数据库,使用命令行(管理员权限):net start mysql80 其中mysql80为mysql的服务名,安装的时候记下来
- 因为用的是控制台程序,所以在App.config文件中connectionStrings节点添加连接mysql的字符串,其中CodeFirstDemo这个数据库在mysql中没有。
- 使用CodeFirst模式,只创建了一张简单的表,并没有创建多表关联,多表关联可以参考EF中的实体来做。
- config文件中的Configuration节点下的连接字符串配置:
<add name="DataModelContainer" connectionString="server=localhost;user id=root;password=123456;database=CodeFirstDemo;charset=utf8;" providerName="MySql.Data.MySqlClient" />
- 创建一个UserInfo类,Key这个特性在System.ComponentModel.DataAnnotations命名空间中,相当于主键的意思,代码:
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _CodeFirstDemo
{
public class UserInfo
{
public UserInfo()
{
}
[Key]//主键
public int Id { get; set; }
public string SName { get; set; }
public int Age { get; set; }
public string Email { get; set; }
}
}
- 创建一个类,继承DbContext,命名空间:System.Data.Entity,可以直接创建连接Mysql的ADO.NET实体数据模型就不用另外添加引用了,代码:
using System; using System.Collections.Generic; using System.Data.Entity; using System.Data.Entity.Infrastructure; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _CodeFirstDemo { public partial class CodeFirstDBTest : DbContext { public CodeFirstDBTest() : base("name=DataModelContainer")//指向连接字符串 { } protected override void OnModelCreating(DbModelBuilder modelBuilder) { } public DbSet<UserInfo> UserInfo { get; set; } } }
- 在Program.cs中使用,代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _CodeFirstDemo { class Program { static void Main(string[] args) { CodeFirstDBTest dbContext = new CodeFirstDBTest(); dbContext.Database.CreateIfNotExists();//如果数据库不存在,则创建数据库 UserInfo userInfo = new UserInfo();//创建一个Model userInfo.SName = "wao"; userInfo.Age = 10; userInfo.Email = "asdf"; dbContext.UserInfo.Add(userInfo);//将Model添加到数据库中 dbContext.SaveChanges();//保存状态 Console.WriteLine("OK"); Console.ReadKey(); } } }
到这儿基本就已经完成,可以打开Mysql管理工具查看了,mysql怎样连接就不说了,其中,NET Framework框架为4.5
参考的文章:
您的项目引用了最新实体框架;但是,找不到数据链接所需的与版本兼容的实体框架数据库 EF6使用Mysql的技巧
Unable to connect to any of the specified MySQL hosts.