asp.net MVC4使用Entity连接mysql

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

  <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添加如下代码

  <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节点

<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的默认构造函数,如下面我的

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添加到引用中。

好了,大功告成。

asp.net MVC4使用Entity连接mysql》上有4条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注