asp.net MVC4使用Entity连接mysql

来源:互联网 发布:房地产网络经纪人 编辑:程序博客网 时间:2024/05/16 10:40
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>
  <addname="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"/>
  <addname="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
<roleManagerenabled="true"defaultProvider="MySQLRoleProvider">
      <providers>
          <clear/>
          <addname="MySQLRoleProvider"autogenerateschema="true"
               type="MySql.Web.Security.MySQLRoleProvider, MySql.Web,Version=6.8.4.0,
                   Culture=neutral,PublicKeyToken=c5687fc88969c44d"
               connectionStringName="MarioDB"applicationName="/"/>
      </providers>
  </roleManager>
 
  <membershipdefaultProvider="MySQLMembershipProvider">
      <providers>
          <clear/>
          <addname="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>
      <removeinvariant="MySql.Data.MySqlClient"/>
      <addname="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
usingSystem;
usingSystem.Data.Entity;
usingMySql.Data;
usingMySql.Data.Entity;
usingMySql.Web.Security;
namespaceMyMVC.Models
{
    publicclass Movie
    {
        publicint ID { get;set; }
        publicstring Title { get;set; }
        publicDateTime ReleaseDate { get;set; }
        publicstring Genre { get;set; }
        publicdecimal Price { get;set; }
    }
 
 
      
    publicclass MovieDBContext : DbContext
    {
        publicMovieDBContext() : base("MovieDB") { }
        publicDbSet<Models.Movie> Moves { get;set; }
    }
}

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

好了,大功告成。


0 0
原创粉丝点击