EF 6.0 및 SQL Server CE 4.0을 사용하고 있습니다. .sdf
파일은 암호로 보호되어있어 LinqPad로 파일을 열어 확인했습니다.Entity Framework를 사용하여 암호로 보호 된 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() System.Data.Entity.Core.Objects.ObjectQuery
at 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