私は単純なコンソール アプリケーションをセットアップしており、コード ファーストのエンティティを適切に動作させようとしています。基本的な例を作成し、クラスとコンテキストをセットアップしました。アプリケーションを実行すると、データベースが自動生成され、bin/Debug
ディレクトリに配置されます。それは素晴らしいので、少なくとも何かが機能します。しかし、SQL Server Compact 4.0 データベース ファイル ( .sdf
) をプロジェクトに追加し、自動生成されたデータベースの代わりにそれを使用したいと考えています。私が読んだことから、派生DbContext
クラスと一致する名前の接続文字列を追加するだけです。
以下は私のものapp.config
です:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="StudentContext"
connectionString="Data Source=Database1.sdf"
providerName="System.Data.SqlServerCe.4.0"/>
</connectionStrings>
<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=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework">
<parameters>
<parameter value="System.Data.SqlServerCe.4.0" />
</parameters>
</defaultConnectionFactory>
</entityFramework>
</configuration>
これは、コンテキストの初期化を使用しようとしたときに受け取ったエラーです。
内部例外は言う
構成システムの初期化に失敗しました
コンストラクターを介してコンテキストを直接指定しようとしましたが、まだ運がありません。うまくいけば、私は何かを見落としているだけです。
(ちなみに、Nuget から EntityFramework を取得しましたが、5.0 である必要がありますが、appconfig では 4.4 と表示されていますか? 自動生成はうまく機能するので、互いに何の関係もないと考えました。)