<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
</entityFramework>
以上是相关的吗?我只是把它放在那里,以免进一步搞砸。 但下面是我感兴趣的,它是我本地sql server的连接字符串
<connectionStrings>
<add name="ApplicationServices" connectionString="Data Source=localhost;Initial Catalog=TestDB;User ID=lews;Password='therin'" providerName="System.Data.SqlClient" />
“在Sequelizer上创建数据库时,您可以指定连接字符串别名。这可以在Sequelizer附加页面上完成(按照应用程序概述中的”转到...“链接)。您将此名称设置为配置文件中连接字符串的名称,我们将在部署代码时自动将其替换为Sequelizer连接字符串。“
这是Appharbor文档的片段。因此,我假设AppHarbor会自动将数据源,初始目录,用户ID和密码替换为正确的值。但由于某种原因它无法连接。
下面是我这次使用MySQL的另一个字符串,我再次假设AppHarbor应该自动注入正确的值,但它给出的错误是:
“在应用程序配置文件中找不到PeopleEntities” 到底是怎么回事?
<add name="PeopleEntities" connectionString="metadata=res://*/Context.People.csdl|res://*/Context.People.ssdl|res://*/Context.People.msl;provider=MySql.Data.MySqlClient;provider connection string="server=localhost;user id=root;database=people"" providerName="System.Data.EntityClient" />
</connectionStrings>
顺便说一下,名称“PeopleEntities”和“ApplicationServices”在AppHarbor上用作别名。 我不知道如何使用文档中给出的代码,数据库不是我的东西..如何使用本地和远程conn字符串?在代码中我在哪里构建字符串并注入它?每当我创建一个DBContext实例时,我是否必须这样做?等。
任何想法都会很棒,谢谢!
修改 顺便说一句,如果我硬编码连接字符串,在app.config中并使用wcftestclient,它可以工作,它会查询数据库..但这不是一个好主意,显然连接字符串可以在没有警告的情况下改变。
无论如何,如果我使用硬编码的字符串部署它并使用我的网站连接到数据库..它不会查询SQL服务器..真的很困惑:(
答案 0 :(得分:0)
http://support.appharbor.com/discussions/problems/2687-solved-mysql-provider-with-entity-framework-problem 对于实体框架: 这篇标记非常重要:
<system.data>
<DbProviderFactories>
<clear />
<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.4.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
哦确保MySQL连接器组件是本地的。它也应该在你的web.config文件中,更加确定它放在你的WCF的App.config中。在连接字符串中使用相同的插件别名。
对于SQL Server插件: 您需要在web.config中使用此标记:
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5"/>
<membership>
<providers>
<clear />
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
</providers>
</membership>
<profile>
<providers>
<clear />
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
</providers>
</profile>
<roleManager enabled="true">
<providers>
<clear />
<add connectionStringName="ApplicationServices" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" />
<add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" />
</providers>
</roleManager>
</system.web>
你应该好好去......