我正在使用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](Func键1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)
1. <> c__DisplayClass7.b__5()
at System.Data.Entity.Core.Objects.ObjectQuery
在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