在Visual Studio 2013中配置Entity Framework使用MySQL

醬油能發表於2018-03-19

環境

使用的軟體及版本
- Microsoft Visual Studio Ultimate 2013 (版本 12.0.40629.00 Update 5)
- Microsoft.Net Framework 版本 4.6.01055
- MySQL版本: 5.6.17

步驟

1. 建立空的MVC專案

2. 安裝擴充套件

Install-Package EntityFramework
Install-Package MySql.Data.Entity -Version 6.9.9

3. 在資料庫中建立對應的表

必須在資料庫內先新建表,否則asp.net mvc會在本地建立local database。

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for t_movie
-- ----------------------------
DROP TABLE IF EXISTS `t_movie`;
CREATE TABLE `t_movie` (
  `f_id` int(11) NOT NULL AUTO_INCREMENT,
  `f_title` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`f_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
SET FOREIGN_KEY_CHECKS=1;

4. 在web.config中建立connection string

<add name="MovieDBContext" connectionString="Data Source=localhost;port=3306;Initial Catalog=mvc;user id=root;password=;Charset=utf8;" providerName="MySql.Data.MySqlClient" />

5. 新建Model類

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity;
using System.Linq;
using System.Web;

namespace mvc5mysql.Models
{
    [Table("t_movie")]
    public class Movie
    {
        [Column("f_id")]
        public int ID { get; set; }
        [Column("f_title")]
        public string Title { get; set; }
    }

    public class MovieDBContext : DbContext
    {
        public DbSet<Movie> Movies { get; set; }
    }
}

這裡面,我做了個註解(Annotation),可以設定表和欄位的別名,預設情況下,表名就是類名,欄位名就是屬性名。

6. 新增Controller

新增一個有模型的Controller:MovieController。

新增Controller

新增Controller

7. 訪問

這個時候應該已經OK了,我們可以訪問 http://localhost:34238/movies ,這個裡面的數字可能不一樣,是隨機的。

介面

可以發現,在資料庫裡已經有了:

資料庫

相關文章