1、安装环境本机OS Win7 x641、开发环境: VS2015与EF62、Mysql数据库为:mysql_installer_community_V5.6.21.1_setup.1415604646.msi或者,直接安装MySQL Installer 5.7。我是为了与环境配套,仍是安装5.63、安装:mysql-for-visualstudio-2.0.4.msi4、安装:mysql-connector-net-6.9.9.msi5、安装:mysql-connector-odbc-5.1.13-winx64.msi备注:本机没有安装MySql Server,仅安装mysql-workbench-community-6.3.8-winx64.msi连接服务器
2、重启VS2015后,在菜单栏或工具栏上单击鼠标右键可以在右键菜单上看到“Mysql”的项,单击之,工具栏即出现Mysql相关的工具按钮。这些工具可以可视化操作Mysql数据库。
3、如果,“Mysql”的选项没有显示出来。有可能是mysql-for-visualstudio程序没有配置好。或版本没有选对。处理:1. 到控制面板的程序中找到MYSQL FOR VISUAL STUDIO 程序, 右键选择更改/change
4、 在弹出窗的具体组件中,勾选Visual studio对应的版本, 然后一路下一步
5、这时,开发环境准备完毕。开始创建EF+MySql项目。1、创建一个Class类库,存放DAL的文件
6、采用Nuget方式,安装EF6.0.2、MySql.Data、MySql.Data.Entity.EF6三个安装包
7、安装完成后会多出4项引用。
8、添加 ADO.NET 实体数据模型选择“来自数据库的 EF设计器”---称为DB First
9、选择需要的表,点击“完成”
10、备注:如果,选择的是“来自数据库的 Code First“,则会自接创建数据表对应的实体类。
11、创建测试应用程序。采用Nuget方式,安装EF6.0.2、MySql.Data、MySql.Data.Entity.EF6三个安装包配置 web.config或app.config(这些设置,一般由安装安装包时,自动产生。需要修改的connectionStrings)1、将entitframework节点替代为:<entityFramework codeConfigurationType="MySql.Data.Entity.MySqlEFConfiguration, MySql.Data.Entity.EF6"> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> <parameters> <parameter value="mssqllocaldb" /> </parameters> </defaultConnectionFactory> <providers> <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider> </providers> </entityFramework>2、添加 ConnectionString节点<connectionStrings> <add name="MyContext" connectionString="Data Source=localhost;port=3306;Initial Catalog=数据库名称;user id=Mysql的登录用户名;password=Mysql server密码;" providerName="MySql.Data.MySqlClient"/> </connectionStrings>3、添加DbProviderFactories<DbProviderFactories> <remove invariant="MySql.Data.MySqlClient" /> <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> </DbProviderFactories>
12、创建MyContext类。注意的是name要与config中的connectionStrings对应public class MyContext : DbContext { public MyContext() : base("name=MyContext")//web.config中connectionstring的名字 { } public DbSet<users> Users { get; set; } }
13、测试入口class Program { static void Main(string[] args) { using (var ctx = new MyContext()) { var provincelist = ctx.Database.SqlQuery<users>("SELECT * FROM users"); foreach (var province in provincelist) { Console.WriteLine("{0}-{1}{2}", province.Email, province.FirstName, province.LastName); } } } }