0

WCFサービスプロジェクトでADO.NETオブジェクトを作成しましたが、それに接続しようとすると、次のエラーが発生します。

'FileEntities'という名前の接続文字列がアプリケーション構成ファイルに見つかりませんでした。

これが私のコードです:

    public File GetFile()
    {
        using (FileEntities ctx = new FileEntities())
        {
            File aFile = (from f in ctx.Files
                          where f.ID == 5
                          select f).FirstOrDefault();       // No connection string named 'FileEntities' could be found in the

アプリケーション構成ファイル。aFileを返します。}}

これが私のサービスプロジェクトの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=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <connectionStrings>
    <add name="FileEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=HOOVERS-PC;initial catalog=Interview_MicahHoover;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="v11.0" />
      </parameters>
    </defaultConnectionFactory>
  </entityFramework>
</configuration>

モデルの「name=」プレフィックスを削除してみました。

4

1 に答える 1

0

ああ、問題は私のサービスプロジェクトがライブラリを構築するだけだった。ライブラリを使用するプロジェクトには、接続文字列が含まれていません。そのプロジェクトに接続文字列を追加しましたが、(ほとんど)機能します。

このようなことをまっすぐに保つことは、物事を多くのプロジェクトに分割しない理由ですが、WCFO'Reillyの本はそれを推奨しています。

于 2012-10-23T18:20:34.553 に答える