VS Code First使用Mysql數據庫詳解

最近電腦出毛病了,本身裝顯卡驅動給裝死了開不了機,本身研究了兩天也沒解決,只有去修電腦的找專業人員,提及來慚愧,雖然本身是搞計算機的可電腦本身重裝系統都還搞不定。重裝系統又清理灰塵花了50大洋,如今用着感受開機都快了好多。關於VS使用Mysql數據庫本來上週就打算寫一博客,一直拖到如今。mysql

1、Mysql的安裝web

首先確定是安裝VS,這都沒必要再說的。其次是下載Mysql,網址http://dev.mysql.com/downloads/installer/sql

打開會看到下面的兩行數據庫

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 框架

下載安裝以後會出現下面的頁面ide

這裏我是經過自定義選擇的,上面我選擇了3個文件,第一個是Mysql數據庫,第二個算是mysql給VS提供的操做工具,第三個就是Mysql的客戶端,能夠可視化的操做數據庫。這裏要說下Mysql Connectors,若是使用相似ado.net的方式能夠直接安裝Connectors就能夠。下載以後一次下一步安裝,而後配置。工具

2、VS Code First使用Mysqlui

1.上面安裝Mysql for vs以後就會在vs新建項時出現下面的內容,若是不安裝是不會出現的。spa

2.類庫的引入.net

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的數據庫

相關文章
相關標籤/搜索