私はコードファーストのEntity FrameworkでSQL Server Express組み込みデータベース(.mdf)を生成しようとしています。それはうまく動作していましたが、今は同じエラーが何度も繰り返されています。問題を特定できません。問題は、初期化時に発生し、それだけで永遠にハングアップし、IntelliTraceのを見れば、あなたはすべてのCSQL Server Expressのコードファーストオペレーティングシステムエラー2
「物理ファイルを開くことができません」を返すスロー/ catch文のループのいくつかの種類を見ることができます:\ GT \を"0:"このエラーのテキストを取得できませんでした理由: 1815 "ファイル" c:\ gt \ aspnetdb.mdf "をデータベース 'WikDb'として添付することはできません。 (System.Data.SqlClient.SqlException)
UPDATE 私はまた、直前になりました次のエラーを取得する「物理ファイルを開くことができません....」
カラム 'InvariantName'は一意に制限されています。値 'System.Data.SqlClient'は既に存在します。ここで
ENDのUPDATE
は私のapp.configを
<configuration>
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SqlServerCe.4.0" />
<add name="Microsoft SQL Server Compact Data Provider 4.0"
invariant="System.Data.SqlServerCe.4.0"
description=".NET Framework Data Provider for Microsoft SQL Server Compact"
type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0"/>
</DbProviderFactories>
</system.data>
<connectionStrings>
<add name="WikDb"
connectionString="data source=.\SQLEXPRESS;Integrated Security=True;
database=WikDb;AttachDBFilename=c:\gt\aspnetdb.mdf;
User Instance=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
そして、ここで私の初期化コード
Database.SetInitializer(new DbInitializer()); //DropCreateDatabaseAlways<WikDb> intializer
Database.DefaultConnectionFactory.CreateConnection("WikDb");
WikDb db = new WikDb();
db.Database.Initialize(true);
は任意の助けである
は、
ありがとう感謝
オペレーティングシステムのエラー2は「ファイルが見つかりません」です。一般的な知識です。 –
私はちょっと困惑しますが、私がコードネームEFで作業したことはありませんが、app.configにSQL Server Compact(またはSqlServerCe)への参照と接続文字列SQL Server Express用です。 EFの特徴かもしれませんが、通常は1つの*または*を選択します。 –
私はこのDbProviderFactoryで以前は動作していたことを知っていますが、別のものを探して、SQLExpressで見つけました。私は同じエラーがあることを知っているが、私はまた、次の例外を取得する直前:列 'InvariantName'は一意に制限されています。 Value 'System.Data。SqlClient 'は既に存在します。 –