2016-11-11 18 views
0

我正在设置一个包含两个项目的解决方案:1)我的类库和2)我的Web UI。最终该网站将用于显示来自现有mysql数据库的查询结果。当创建控制器(ASP.NET MVC 5与MySql)时,“调用目标引发异常”

我努力在一段时间内创建ado.net实体模型。但我认为我已经在更新视觉工作室的mysql连接器后按照以下说明计算出来了:https://dev.mysql.com/doc/connector-net/en/connector-net-entityframework60.html

既然创建了实体模型,我正努力用脚手架创建一个简单的控制器。我在web.config和app.config中检查了连接字符串和ef提供程序。

我已经通过这些问题看上去但还没有找到我的答案:

Exception has been thrown by the target of an invocation- while creating the controller

Application can't scaffold items

Enity Framework With MySQL

我敢肯定的问题是我如何配置它。有一段时间我以为app.config中的内容并不重要,因为UI项目(包含web.config)被设置为启动项目。现在我只是困惑。这就是为什么我在下面列出了两个。任何见解都非常感谢。

从web.config中:

<connectionStrings> 
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-MySolution.UI-20161111094519.mdf;Initial Catalog=aspnet-MySolution.UI-20161111094519;Integrated Security=True" 
     providerName="System.Data.SqlClient" /> 
    <add name="MySolutionEntities" connectionString="metadata=res://*/Entities.DevData.csdl|res://*/Entities.DevData.ssdl|res://*/Entities.DevData.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=****;user id=****;password=****;database=mydatabase&quot;" 
     providerName="System.Data.EntityClient" /> 
    </connectionStrings> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
    <providers> 
     <provider invariantName="System.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" /> 
     <provider invariantName="System.Data.MySqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFrameworkSqlServer" /> 
    </providers> 
    </entityFramework> 

从app.config中:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    </configSections> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
    <providers> 
     <provider invariantName="System.Data.SqlClient" 
       type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" /> 
    <provider invariantName="MySql.Data.SqlClient" 
       type="MySql.Data.Entity.SqlServer.ProviderServices, EntityFramework.SqlServer"/></providers> 
    </entityFramework> 
<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, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> 
    </DbProviderFactories> 
    </system.data> 
    <connectionStrings> 
    <add name="MySolutionEntities" connectionString="metadata=res://*/Entities.DevData.csdl|res://*/Entities.DevData.ssdl|res://*/Entities.DevData.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=****;user id=****;password=****;database=mydatabase&quot;" 
     providerName="System.Data.MySqlClient" /> 
    </connectionStrings> 
</configuration> 
+0

显示正在爆炸的控制器?对构造函数感兴趣。我怀疑你在构造函数中有一个依赖项,但框架不知道如何解决这个依赖项 – trailmax

+0

嗨@trailmax,我试图创建控制器时得到异常,所以我不能告诉你代码 –

回答

0

好吧,我不太确定我是如何解决这个问题,但我想,我应该尝试来形容它。我以相同的方式开始了我的解决方案并创建了实体模型。然后,而不是使用在那篇文章中提供标签的代码在dev.mysql.com(以上链接),我发现这在我的app.config:

<providers> 
    <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider> 
</providers> 

我复制了同样的事情交给我的web.config 。然后我能够用脚手架创建控制器。

0

最近的答案,但我希望它可以帮助某人 我有同样的问题,我只是解决它通过nuget包管理器控制台卸载并重新安装实体框架。 Ø运行包管理器控制台:

工具 - > NuGet包管理器 - >程序包管理器控制台

要删除:

UnInstall-Package EntityFramework 

重新安装:

Install-Package EntityFramework 

我希望这个作品对你来说

相关问题