Fra*_*Liu 5 entity-framework sql-server-ce
我使用的是EF 6.0和SQL Server CE 4.0.该.sdf文件受密码保护,我通过LinqPad打开文件验证了该文件.当我尝试使用以下连接字符串在代码中打开此数据库时,我得到一个异常:
指定的密码与数据库密码不匹配
码:
using (var context = new MyDbContext("ExamManagement"))
{
context.Database.Initialize(false);
}
Run Code Online (Sandbox Code Playgroud)
连接字符串:
<connectionStrings>
<add name="ExamManagement"
connectionString="Data Source=|DataDirectory|Pikeman.sdf;Max Database Size=4091;Password=123;"
providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
位于System.Data.Entity.Core.EntityClient.EntityConnection.Open()
处于System.Data.Entity.Core.Object.Entity上的System.Data.Entity.Core.Objects.ObjectContext.EnsureConnection(Boolean shouldMonitorTransactions)
中的System.Data.Entity. ](Func键1.<> c__DisplayClass7.b__5() 在System.Data.Entity.Core.Objects.ObjectQuery 1 forMergeOption) 在System.Data.Entity.Core.Objects.ObjectQuery 1.MoveNext() 在System.Linq.Enumerable .First [TSource](IEnumerable`1 source)1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)
at System.Data.Entity.Core.Objects.ObjectQuery1.GetResults(Nullable1.<System.Collections.Generic.IEnumerable<T>.GetEnumerator>b__0()
at System.Data.Entity.Internal.LazyEnumerator
连接字符串没问题(通常我不指定最大数据库大小,您可以尝试删除该参数,但我很确定这不是问题)。
因此,就您而言,我认为您可能正在使用不同的密码打开数据库(如异常所示),或者您正在打开错误的数据库。尝试指定绝对路径并从该路径打开数据库,例如
<connectionStrings>
<add name="ExamManagement"
connectionString="Data Source=C:\temp\Pikeman.sdf;Password=123;"
providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1526 次 |
| 最近记录: |