2
 <entityFramework>
    <defaultConnectionFactory  type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="v11.0" />
      </parameters>
    </defaultConnectionFactory>
  </entityFramework>

上記は関係ありますか?物事をさらに台無しにしないために、そこに持っているだけです。しかし、以下は私が興味を持っているものです。それは私のローカルSQLサーバーの接続文字列です

  <connectionStrings>
    <add name="ApplicationServices" connectionString="Data Source=localhost;Initial Catalog=TestDB;User ID=lews;Password='therin'" providerName="System.Data.SqlClient" />

"Sequelizer でデータベースを作成するときに、接続文字列のエイリアスを指定できます。これは、Sequelizer アドオン ページで行います (アプリケーション概要の "Go to ..." リンクに従ってください)。この名前を構成ファイル内の接続文字列の名前を指定すると、コードがデプロイされるときに Sequelizer 接続文字列に自動的に置き換えられます。」

これは、Appharbor のドキュメントの抜粋です。したがって、データ ソース、初期カタログ、ユーザー ID、およびパスワードは、AppHarbor によって自動的に正しい値に置き換えられると想定しています。しかし、なぜか接続できません。

以下は、今回 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=&quot;server=localhost;user id=root;database=people&quot;" providerName="System.Data.EntityClient" />
      </connectionStrings>

ちなみに、「PeopleEntities」と「ApplicationServices」という名前は、AppHarbor のエイリアスとして使用されます。そして、ドキュメントに記載されているコードの使用方法がわかりません。データベースは私のものではありません..ローカルとリモートの両方のconn文字列をどのように使用すればよいですか? コードのどこで文字列を作成して挿入しますか? DBContext インスタンスを作成するたびに、これを行う必要がありますか? 等..

どんなアイデアでも素晴らしいでしょう、ありがとう!

編集: ところで、接続文字列を app.config でハードコーディングし、wcftestclient を使用すると、動作し、データベースにクエリを実行します..しかし、これは良い考えではありません.接続文字列は警告なしに変更される可能性があるようです.

とにかく、ハードコーディングされた文字列を使用して展開し、サイトでデータベースに接続すると.. SQLサーバーにクエリを実行しません..本当に混乱します:(

4

1 に答える 1

0

http://support.appharbor.com/discussions/problems/2687-solved-mysql-provider-with-entity-framework-problem Entity Framework の場合: このマークアップは信じられないほど重要です:

 <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>

そして、あなたは行く準備ができているはずです..

于 2013-03-18T08:20:15.927 に答える