【发布时间】:2013-11-30 18:51:42
【问题描述】:
我在使用 EF4.2 作为 ORM 和 MySQL 作为 DB 部署应用程序时遇到问题。我已将 MySQL.Data (v.6.7.4) 和 MySQL.Data.Entity (v.6.7.4.1) 添加到项目中。我的 app.config 具有以下结构:
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="Settings.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<connectionStrings>
<add name="SUDBContext" connectionString="metadata=res://*/Model.ORM.SUDB.csdl|res://*/Model.ORM.SUDB.ssdl|res://*/Model.ORM.SUDB.msl;provider=MySql.Data.MySqlClient;provider connection string="{0}"" providerName="MySql.Data.MySqlClient" />
</connectionStrings>
<userSettings>
<Settings.Settings>
<setting name="RequestTimeout" serializeAs="String">
<value>3000</value>
</setting>
<setting name="FindOrderByBarcodeUrl" serializeAs="String">
<value>http://developmachine.babadu.ru/exchange/restservice/getorderinfobybarcode.php?barcode={0}</value>
</setting>
<setting name="ChangeOrderStateUrl" serializeAs="String">
<value>http://developmachine.babadu.ru/exchange/restservice/changeordershippingstatus.php?id={0}&status={1}</value>
</setting>
<setting name="ConnectionString" serializeAs="String">
<value>server=localhost;user id=root;password=qwerty123;persist security info=True;database=sudb</value>
</setting>
<setting name="DefaultPrinter" serializeAs="String">
<value />
</setting>
<setting name="IsDirectPrint" serializeAs="String">
<value>False</value>
</setting>
<setting name="FindOrderByNumberUrl" serializeAs="String">
<value>http://babadu.ru/exchange/restservice/getorderinfobyid.php?id={0}</value>
</setting>
</Settings.Settings>
</userSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Data" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.7.4.0" newVersion="6.7.4.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
</entityFramework>
</configuration>
当我尝试启动应用程序并从开发人员机器上的数据库中进行查询时,一切都很好。当我尝试在客户端机器上启动它时,出现错误:“在配置中找不到指定的商店提供程序,或者无效。”。 我做错了什么?
附: MySQL .NetConnector v6.7.4 和 .NetFramework v.4 已经安装在客户端机器上
【问题讨论】:
标签: mysql entity-framework app-config