asp.net MVC4使用Entity连接mysql

本文介绍如何在ASP.NET MVC4项目中通过Entity Framework连接MySQL数据库,并配置相关设置,包括安装MySQL for Visual Studio、MySQL Connector/Net,以及web.config文件的调整。
OutOfMemory.CN - 为程序员服务

http://outofmemory.cn/wr/?u=http%3A%2F%2Fwww.lylinux.org%2Fasp-net-mvc4%25e4%25bd%25bf%25e7%2594%25a8entity%25e8%25bf%259e%25e6%258e%25a5mysql.html

格式就先不编辑了O(∩_∩)O

这个真是一个大坑啊.TM折腾了一下午终于弄好了.赶紧记录下来分享给大家,免得有和我一样一直配置不成功的又折腾半天….
1.安装MySQL for Visual Studio
这个直接在mysql官网下载并安装就好了.
不过这个必须是vs2013 professional版本以上才可以!!
2.安装MySQL Connector/Net
这个可以可以通过NuGet工具获得,比较轻松愉快,当然你也可以自己下载,自己引用.
3.配置web.config.
首先是connectionStrings节点

1
2
3
4
5
<connectionStrings>
  <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-MyMVC-20150122222755;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-MyMVC-20150122222755.mdf" providerName="System.Data.SqlClient" />
  <add name="MovieDBContext" providerName="MySql.Data.MySqlClient" connectionString="server=localhost;
    port=3306;database=mymvc;uid=root;password="/>
</connectionStrings>

然后是system.data节点和system.web节点
system.web添加如下代码

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<roleManager enabled="true" defaultProvider="MySQLRoleProvider">
      <providers>
          <clear/>
          <add name="MySQLRoleProvider" autogenerateschema="true"
               type="MySql.Web.Security.MySQLRoleProvider, MySql.Web, Version=6.8.4.0,
                   Culture=neutral, PublicKeyToken=c5687fc88969c44d"
               connectionStringName="MarioDB" applicationName="/" />
      </providers>
  </roleManager>
 
  <membership defaultProvider="MySQLMembershipProvider">
      <providers>
          <clear />
          <add name="MySQLMembershipProvider" autogenerateschema="true"
               type="MySql.Web.Security.MySQLMembershipProvider, MySql.Web,
                   Version=6.7.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"
               connectionStringName="MarioDB" enablePasswordRetrieval="false"
               enablePasswordReset="true" requiresQuestionAndAnswer="false"
               requiresUniqueEmail="true" maxInvalidPasswordAttempts="5"
               minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0"
               passwordAttemptWindow="10" applicationName="/" />
      </providers>
  </membership>

system.data节点

1
2
3
4
5
6
7
8
<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" />
    </DbProviderFactories>
  </system.data>

注意将上面的Version=6.8.4.0修改成你的版本号
4.在你的module类中实现DbContext的默认构造函数,如下面我的

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
using System;
using System.Data.Entity;
using MySql.Data;
using MySql.Data.Entity;
using MySql.Web.Security;
namespace MyMVC.Models
{
    public class Movie
    {
        public int ID { get; set; }
        public string Title { get; set; }
        public DateTime ReleaseDate { get; set; }
        public string Genre { get; set; }
        public decimal Price { get; set; }
    }
 
 
      
    public class MovieDBContext : DbContext
    {
        public MovieDBContext() : base("MovieDB") { }
        public DbSet<Models.Movie> Moves { get; set; }
    }
}

5.将Mysql.Data和Mysql.Web添加到引用中。

好了,大功告成。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值