最近电脑出毛病了,自己装显卡驱动给装死了开不了机,自己研究了两天也没解决,只有去修电脑的找专业人员,说起来惭愧,虽然自己是搞计算机的可电脑自己重装系统都还搞不定。重装系统又清理灰尘花了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的数据库

VS Code First使用Mysql数据库详解的更多相关文章

  1. SQLServer 远程链接MySql数据库详解

    SQLServer 远程链接MySql数据库详解 by:授客 QQ:1033553122 测试环境: Microsoft Windows XP Professional 版本2000 Service ...

  2. intelliJ IDEA 配置MySQL数据库 详解

    1> 在主界面中,点击右边侧栏的 Database ,在点击 + ,再Data Source 选择数据库   2> 填入 Database 数据库名,在输入 User 和 Password ...

  3. mysql数据库 详解 之 自学成才1

    一.学习目录 1.认识数据库和mysql 2.mysql连接 3.入门语句 4.详解列类型 5.增删改查 INSERT INTO  表名(列1,……  列n)  VALUES(值 1,……  值 n) ...

  4. mysql数据库 详解

    一.学习目录 1.认识数据库和mysql 2.mysql连接 3.入门语句 4.详解列类型 5.增删改查 INSERT INTO  表名(列1,……  列n)  VALUES(值 1,……  值 n) ...

  5. Jmeter操作MySQL数据库详解

    一.jmeter操作数据库的原理 jmeter不可直接操作数据库,必须通过驱动程序来间接操作,但如果数据库不是在本地而是云服务器上的话就需要通过网络来操作. jmeter通过驱动程序来完成对MySQL ...

  6. mysql数据库详解

    001 数据库应用系统设计 1.规划   2.需求分析   3.概念模型设计   4.逻辑设计   5.物理设计   6.程序编制及调试   7.运行及维护. 002 创建数据库 CREATE DAT ...

  7. 原生jdbc操作mysql数据库详解

    首先给大家说一下使用JDBC链接数据库的步骤 1.加载链接数据库驱动 2.建立数据库链接 3.创建数据库操作对象 4.编写sql语句,执行sql语句 5.获取结果集 6.释放资源 我这边采用的是mav ...

  8. MySQL数据库详解之"双1设置"的数据安全的关键参数案例分享

    mysql的"双1验证"指的是innodb_flush_log_at_trx_commit和sync_binlog两个参数设置,这两个是是控制MySQL 磁盘写入策略以及数据安全性 ...

  9. docker中使用mysql数据库详解(在局域网访问)

    开发过程中经常需要安装.调试mysql数据库,还需要在各种操作系上安装包依赖,实在是繁琐,因此就研究了一下如何在docker上运行一个mysql镜像,省却了我安装.找依赖的问题. 注:本文所有内容均在 ...

随机推荐

  1. Maven 打包涉及证书文件问题

    当使用maven-assembly-plugin或者maven-shade-plugin打包时,如果涉及到证书文件,一定设置过滤,否则证书文件会被做修改.报异常: java.io.IOExceptio ...

  2. MySQL基础学习(一) 命令行命令

    1. 命令行登录 mysql -uroot -p 按照提示输入密码 常用登录选项 -u 指定用户 -p 密码 -h 数据库所在主机 -P 端口 -D 指定数据库 2.命令行退出 exit quit \ ...

  3. Mac SVN 命令行

    Mac自带了SVN命令行,如我的升级到10.10(OSX yosemite)后命令行版本为1.7.10 以下是一些常用命令 1.将文件checkout到本地目录 svn checkout path(p ...

  4. Js apply call方法详解【转】

    我在一开始看到javascript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这里我做如下笔记,希望和大家 ...

  5. python json

    #-*-coding:utf-8-*- '''编码格式记得统一,不然容易出现中文乱码,推荐用utf-8''' import json ##################json单对象######## ...

  6. Ubuntu14.02.2下安装JDK并配置Jetty服务器

    首先第一步先取得JDK的安装文件,由于我的系统是64位的,所以安装包是jdk-7u80-linux-x64.gz 上传到unbuntu服务器下 执行tar -xvf jdk-7u80-linux-x6 ...

  7. java报表工具FineReport使用中遇到的常见报错及解决办法(三)

    这里写点抛砖引玉,希望大家能把自己整理的问题及解决方法晾出来,Mark一下,利人利己. 出现问题先搜一下文档上有没有,再看看度娘有没有,再看看论坛有没有.有报错要看日志.下面简单罗列下常见的问题,大多 ...

  8. bzoj-4517 4517: [Sdoi2016]排列计数(组合数学)

    题目链接: 4517: [Sdoi2016]排列计数 Time Limit: 60 Sec  Memory Limit: 128 MBSubmit: 846  Solved: 530[Submit][ ...

  9. POJ3321Apple Tree[树转序列 BIT]

    Apple Tree Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 26995   Accepted: 8007 Descr ...

  10. 01 Hibernate错题分析

    解析: 此题目考查的是对Hibernate中交叉连接的理解.HQL支持SQL风格的交叉连接查询,交叉连接适用于两个类之间没有定义任何关联时.在where字句中,通过属性作为筛选条件,如统计报表数据.使 ...