1

わかりました、私はこれを午前中ずっとグーグルで検索しましたが、本当に助けが必要です。Adam Freeman (Pro ASP.Net MVC 4) の本を読んでいて、第 7 章で行き詰っています。彼らの本。

とにかく、本は最初にEFにデータベースを使用し、本に従って、localDBを作成し、DBスキーマを定義し、いくつかのサンプルデータを追加しました.次に、このDBcontextを作成しました

    using System.Data.Entity;
    using SportsStore.Domain.Entities;

    namespace SportsStore.Domain.Concrete
   {
       class EFDbContext : DbContext
   {
       public DbSet<Product> Products { get; set; }
   }
   }

そして、ここに接続文字列があります

<connectionStrings>
    <add name="EFDbContext" connectionString="Data Source=(localdb)\v11.0;Initial     Catalog=SportsStore;Integrated Security=True" providerName="System.Data.SqlClient"/>
  </connectionStrings>

また、インストール中にEF / Nugetによって自動追加されたと思われる設定がいくつかあります

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

エラーメッセージはあちこちに散らばっています. 助けてください。独学を進めることができるように、どんな支援も大歓迎です。

現在のエラー メッセージは、「セクション宣言が見つからないため、構成セクション 'entityFramework' を読み取ることができません」です。

Config Source:
   96:   </runtime>
   97:   <entityFramework>
   98:     <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
4

2 に答える 2

3

エラーのハンドルを取得するには、コンストラクターで接続文字列名を指定してください。

using System.Data.Entity;
using SportsStore.Domain.Entities;

namespace SportsStore.Domain.Concrete
{
    public class EFDbContext : DbContext
    {
        public EFDbContext() : base("EFDbContext") {}
        public DbSet<Product> Products { get; set; }
    }
}

名前に渡す文字列が web.config の「name」属性と一致していることを確認してください。

<connectionStrings>
    <add name="EFDbContext" connectionString="Data Source=(localdb)\v11.0;Initial     Catalog=SportsStore;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>

それがうまくいかない場合は、以下のように「name=」オプションを使用してみてください (便利な参照はこちら)。これにより、構成ファイルで接続文字列が見つからない場合に、診断に使用できるエラーが EF5 に強制的にスローされるはずです。

namespace SportsStore.Domain.Concrete
{
    public class EFDbContext : DbContext
    {
        public EFDbContext() : base("name=EFDbContext") {}
        public DbSet<Product> Products { get; set; }
    }
}

それでも問題が解決しない場合は、例外の詳細をお知らせいただく必要があります。

編集

「セクション宣言がないため、構成セクション 'entityFramework' を読み取ることができません」

entityFramework セクションは次のようになります。要素の直接の子であることに注意してください。

<configuration>
  <configSections>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    <!-- other section and sectionGroup declarations -->
  </configSections>
  <!-- other sections -->
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="v11.0" />
      </parameters>
    </defaultConnectionFactory>
  </entityFramework>
  <!-- other sections -->
</configuration>
于 2013-06-04T17:00:05.660 に答える