VS Code First使用Mysql数据库详解
最近电脑出毛病了,自己装显卡驱动给装死了开不了机,自己研究了两天也没解决,只有去修电脑的找专业人员,说起来惭愧,虽然自己是搞计算机的可电脑自己重装系统都还搞不定。重装系统又清理灰尘花了50大洋,现在用着感觉开机都快了好多。关于VS使用Mysql数据库原本上周就打算写一博客,一直拖到现在。
一、Mysql的安装
首先肯定是安装VS,这都不必再说的。其次是下载Mysql,网址http://dev.mysql.com/downloads/installer/
打开会看到下面的两行
If you have an online connection while running the MySQL Installer, choose the mysql-installer-web-community file. If you do NOT have an online connection while running the MySQL Installer, choose the mysql-installer-community file.
以我4级差一分的英文水平来翻译一下就是如果联网安装可以下载mysql-installer-web-community,不是则下载mysql-installer-community
下载安装之后会出现下面的页面
这里我是通过自定义选择的,上面我选择了3个文件,第一个是Mysql数据库,第二个算是mysql给VS提供的操作工具,第三个就是Mysql的客户端,可以可视化的操作数据库。这里要说下Mysql Connectors,如果使用类似ado.net的方式可以直接安装Connectors就可以。下载之后一次下一步安装,然后配置。
二、VS Code First使用Mysql
1.上面安装Mysql for vs之后就会在vs新建项时出现下面的内容,如果不安装是不会出现的。
2.类库的引入
EF框架操作Mysql数据库需要通过NuGet引入MySql.Data.Entity.EF6
引入之后会出现两个dll引用,下图的EF引用是在添加实体ADO.Net实体数据模型时自动添加的。
3.配置文件
光引入这些还不够,还有修改配置文件,因为默认的是sql server数据库,所以需要修改配置文件。将系统生成的配置文件修改为下面的内容。这里注意引用的版本号
<?xml version="1.0" encoding="utf-8"?> <!--注意:此项目为动态库,所以此配置文件内容仅供作为范本使用,实际的WPF或ASP.NET项目可从此文件复制配置内容进行修改--> <configuration> <configSections> <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </configSections> <entityFramework codeConfigurationType="MySql.Data.Entity.MySqlEFConfiguration, MySql.Data.Entity.EF6"> <defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6"> <parameters> <parameter value="v11.0" /> </parameters> </defaultConnectionFactory> <providers> <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> <connectionStrings> <add name="TestContext" connectionString="Data Source=localhost;port=3306;Initial Catalog=TestContext;user id=admin;password=123456;" providerName="MySql.Data.MySqlClient" /> </connectionStrings> <system.data> <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> </system.data> </configuration>
4.应用
下面是我为这个做了一个简单的demo。首先是新建了一个window控制台应用程序,然后添加ADO.NET实体数据模型的空的Code First。然后在数据库上下文中增加实体User。同时设置连接字符串是TestContext。
namespace EFMysql { using System; using System.Data.Entity; using System.Linq; public class TestContext : DbContext { public TestContext() : base("name=TestContext") { } public virtual DbSet<User> Users { get; set; } } }
using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; namespace EFMysql { public class User { [Key] public int UserId { get; set; } public string Name { get; set; } } }
在控制台中连接数据库新增一个User实体对象。
static void Main(string[] args) { using (var db = new TestContext()) { User user = new User() { Name = "Test" }; db.Users.Add(user); db.SaveChanges(); Console.WriteLine("OK"); } Console.ReadLine(); }
上面要注意的是Console.ReadLine();不能写在using里面,不然就一闪而过。下面是输出的OK,然后查看Mysql服务可以发现有一个名TestContext的数据库
作者:社会主义接班人
出处:http://www.cnblogs.com/5ishare/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
如果文中有什么错误,欢迎指出。以免更多的人被误导。