带有MySql的ASP.Net MVC - 无法找到请求的.Net Framework数据提供程序

Mar*_*ark 2 mysql asp.net asp.net-mvc dbproviderfactories asp.net-mvc-3

我从http://dev.mysql.com/downloads/connector/net/安装了MySql Connector 6.6.5

我在asp.net MVC网站上添加了它作为参考(请参见下面的截图),并将"Copy local"更改为true.

但是,当我到达该行时:var calls = db.Calls.ToList();我收到错误:

Unable to find the requested .Net Framework Data Provider. It may not be installed.

我在下面提供了我的代码.任何人都可以让我知道我错过了什么?

谢谢,马克

Controller Call.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MySql.Data;
using MySql.Data.Entity;
using MySql.Data.MySqlClient;
using MySql.Web;
using System.Data;

namespace bm.Controllers
{
public class CallController : Controller
{
    private CallContext db = new CallContext();

    //
    // GET: /Calls/
    public ActionResult Index()
    {
        var calls = db.Calls.ToList();
        return View(calls);
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

CallContext.cs

using bm.Models;
using System.Data.Entity;
public class CallContext : DbContext
{
    static CallContext()
    {

    }
    public CallContext()
        : base("callsConn")
    {

    }

    public DbSet<Call> Calls { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

Web.Config连接字符串:

 <connectionStrings>
  <add name="callsConn" connectionString="Server=xxx;Port=3306;Database=xxxx;Uid=root;Pwd=;" providerName="MySql.Data.MySqlClient" />
 </connectionStrings>
Run Code Online (Sandbox Code Playgroud)

参考文献:

参考

Mar*_*ark 13

更新

我似乎通过在web.config中添加以下内容来解决这个问题:

  <system.data>
    <DbProviderFactories >
      <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.6.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
    </DbProviderFactories>
  </system.data>
Run Code Online (Sandbox Code Playgroud)

希望它可以帮助别人.

标记