EF 6.0とSQL Server CE 4.0を使用しています。 .sdf
ファイルはパスワードで保護されており、LinqPadでファイルを開いて確認しました。私は次の接続文字列を使用してコードでは、このデータベースを開こうとすると、私は例外を取得:エンティティフレームワークでパスワードで保護されたSQL Server CEデータベースを開く方法
using (var context = new MyDbContext("ExamManagement"))
{
context.Database.Initialize(false);
}
:
指定したパスワードは、データベースのパスワードを
コードが一致しません接続文字列:
<connectionStrings>
<add name="ExamManagement"
connectionString="Data Source=|DataDirectory|Pikeman.sdf;Max Database Size=4091;Password=123;"
providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>
スタックトレース:System.Data.Entity.Core.EntityClient.EntityConnection.Open()で
System.Data.Entity.Core.Objects.ObjectContext.EnsureConnectionで
(ブールshouldMonitorTransactions)
でSystem.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction [T](機能> c__DisplayClass7.b__5()System.Data.Entity.Core.Objects.ObjectQuery1.GetResults(Nullable
1 forMergeOptionで
)システムで
.Data.Entity.Core.Objects.ObjectQuery1.<System.Collections.Generic.IEnumerable<T>.GetEnumerator>b__0()
1.MoveNext()
at System.Data.Entity.Internal.LazyEnumerator
System.Linq.Enumerable.First [TSOURCE](IEnumerable`1元)で が
あなたが最も可能性が高い私の更新のスクリーンショットを参照してください。間違った接続文字列 – ErikEJ
を使用しているため、絶対パスを指定し、そのパスからデータベースを開くようにしてください。接続文字列は正しいと思われますが、 'Password'部分は無視されます。 –
正しいデータベースファイルに対してlinqpadでテストしていますか?あなたのbin/debugフォルダを見てください。おそらくそこにsdfファイルのコピーがあります! – ErikEJ