我正在尝试使用ASP.Net MVC3,Entity Framework和MySQL创建一个Web应用程序。
我已将以下代码添加到我的Web.Config文件中。
<connectionStrings>
<add name="ContactContext" connectionString="server=localhost;database=contacts;uid=root;pwd=password;" providerName="MySql.Data.MySqlClient"/>
</connectionStrings>
我还在项目“Contact_Me”中创建了“Person”Model,“ContactContext”。当我尝试创建一个包含Person Model和Contact上下文的“ContactController”时,它会给我以下错误
“无法检索”Connect_Me.Models.Persons“的元数据 provider没有返回ProviderManifestToken字符串“
MYSQ & MVC3 SQL connection error \ ProviderManifestToken but I am using MySQL,这是我最接近的问题。但答案并没有解决我的问题。
提前致谢
答案 0 :(得分:20)
我知道这对于你们几个人来说可能是非常基本的,但是在EF无法找到要使用的连接字符串的情况下也会抛出此异常。 如果您在多层应用程序中工作,请确保将连接字符串添加到客户端应用程序,而不是包含数据访问代码的类库。 我的2美分。
答案 1 :(得分:10)
当我的sql server实际关闭时,我收到此错误。因此,请确保您的SQL Server已启动并运行。
答案 2 :(得分:2)
问题在于MySQL连接器/网络。
我之前使用的是MySQL连接器/ Net 6.3.5,在我卸载它并安装了MySQL连接器/ Net 6.5.4后,问题得到解决。您可以在http://www.mysql.com/products/connector/
找到最新的连接器答案 3 :(得分:1)
有时这个问题也会因为sslmode而出现,对我来说,解决方法是将sslmode = None添加到连接字符串
我必须对来自
的连接字符串进行一些小改动<add name="Connection" connectionString="Server=SOMEHOST;Database=DB;Uid=USR1;Pwd=PASS1;" providerName="MySql.Data.MySqlClient" />
到
<add name="Connection" connectionString="Server=SOMEHOST;Database=DB;Uid=USR1;Pwd=PASS1;sslmode=None;" providerName="MySql.Data.MySqlClient" />
答案 4 :(得分:0)
可能是您的连接字符串中出现错误。您是否尝试使用上面的登录连接到数据库实例。尝试更改连接字符串
connectionString="Data Source=.;Initial Catalog=contacts;Integrated Security=True uid=root;pwd=password;" providerName="MySql.Data.MySqlClient"/>
如果您使用的是sql server,请使用上面的命令,否则如果您使用sql express,请使用下面的
connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=contacts;Integrated Security=True uid=root;pwd=password;" providerName="MySql.Data.MySqlClient"/>
答案 5 :(得分:0)
尽管已经回答了这个问题,但我遇到了同样的问题而且我遇到了连接字符串;我有部分&#34;集成安全&#34;当我真的不应该使用它时;我依赖于数据库身份验证。
我删除了&#34; Integrated Security = True&#34;部分和它完美地工作:)
答案 6 :(得分:0)
重新启动计算机对我有用。
在显示此消息时,我发现我的计算机[Windows 10]与使用相同配置部署应用程序的测试服务器之间没有任何差异,并且在那里正常工作并使用相同的数据库。这意味着问题可能没有连接到测试服务器上运行的数据库。
值得一提的是重启时有一些Windows更新未决。
答案 7 :(得分:0)
如果您在使用MySql.Data.Entity
(最新版本为6.10.X
)(<最新>)和 MySql.Data
(最新版本)的EntityFramework项目中升级Nuget引用,也会出现此错误。版本是8.0.X
)。这些版本号应该匹配。您应该将MySql.Data.EntityFramework
软件包与MySql.Data 8.0及更高版本一起使用,并将MySql.Data.Entity
软件包与6.10及更高版本一起使用。
此博客文章中有更多详细信息:https://davidsekar.com/asp-net/mysql-error-the-provider-did-not-return-a-providermanifesttoken