试图访问ASP.NET MVC中的MySql数据库

时间:2013-04-18 21:49:10

标签: mysql asp.net-mvc entity-framework

我是ASP.NET MVC的新手,我正在使用自己的MySQL数据库编写ASP.NET MVC应用程序。我已经定制了连接到数据库的代码,我认为一切都必须正常工作。当我在DeelnemerRepository(英文版UserRepository)中使用我自己的testdata时,我没有任何问题,但是当我尝试访问数据库时,它会抛出ArgumentException。该例外还给出了以下消息:

  

无法找到的最请求-NET-框架的数据提供者-IT-可能-不待安装

DeelnemerRepository中调用的方法:

public IQueryable<Deelnemer> FindAll()
{
    return deelnemers.OrderBy(d => d.Emailadres);
}

使用NuGet我添加了MySql.Data,MySql.Data.Entities和MySql.Web

web.config文件中的连接字符串:

<connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-ProjectDynamische-20130415102959;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-ProjectDynamische-20130415102959.mdf" providerName="System.Data.SqlClient" />
    <add name="kindermishandeling_dbContext" connectionString="server=localhost;Port=3307;User Id=root;password=1234;database=kindermishandeling_db;Persist Security Info=True" providerName="MySql.Data.MySqlClient" />
  </connectionStrings>

我也发现在这个课程中这个方法可能有问题,但我不确定:

private class SimpleMembershipInitializer
        {
            public SimpleMembershipInitializer()
            {
                Database.SetInitializer<UsersContext>(null);

                try
                {
                    using (var context = new UsersContext())
                    {
                        if (!context.Database.Exists())
                        {
                            // Create the SimpleMembership database without Entity Framework migration schema
                            ((IObjectContextAdapter)context).ObjectContext.CreateDatabase();
                        }
                    }

                    WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);
                }
                catch (Exception ex)
                {
                    throw new InvalidOperationException("The ASP.NET Simple Membership database could not be initialized. For more information, please see http://go.microsoft.com/fwlink/?LinkId=256588", ex);
                }
            }
        }

我不指望问题的解决方案,但我只是想知道我要看哪里,我认为ASP.NET MVC真的很复杂......

1 个答案:

答案 0 :(得分:0)

我自己就找到了解决方案。无论如何,感谢所有试图帮助我的人。 我必须将此代码添加到我的web.config文件中:

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