0

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

无法找到请求的网络框架数据提供者它可能未安装

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 真的很复杂......

4

1 回答 1

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>
于 2013-04-18T23:32:29.947 回答