Tôi đang sử dụng EF 6.0 và SQL Server CE 4.0. Tệp tin .sdf
được bảo vệ bằng mật khẩu mà tôi đã xác minh bằng cách mở tệp bằng LinqPad. Khi tôi cố gắng để mở cơ sở dữ liệu này trong mã với chuỗi kết nối sau, tôi nhận được một ngoại lệ:Cách mở cơ sở dữ liệu SQL Server CE được bảo vệ bằng mật khẩu với Entity Framework
Mật khẩu quy định không phù hợp với mật khẩu cơ sở dữ liệu
Code:
using (var context = new MyDbContext("ExamManagement"))
{
context.Database.Initialize(false);
}
Chuỗi kết nối:
<connectionStrings>
<add name="ExamManagement"
connectionString="Data Source=|DataDirectory|Pikeman.sdf;Max Database Size=4091;Password=123;"
providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>
tại System.Data.Entity.Core.EntityClient.EntityConnection.Open()
tại System.Data.Entity.Core.Objects.ObjectContext.EnsureConnection (shouldMonitorTransactions Boolean)
tại System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction [T] (Func1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)
1. <> c__DisplayClass7.b__5()
at System.Data.Entity.Core.Objects.ObjectQuery
tại System.Data.Entity.Core.Objects.ObjectQuery1.GetResults(Nullable
1 forMergeOption)
tại hệ thống .Data.Entity.Core.Objects.ObjectQuery1.<System.Collections.Generic.IEnumerable<T>.GetEnumerator>b__0()
1.MoveNext()
at System.Data.Entity.Internal.LazyEnumerator
tại System.Linq.Enumerable.First [TSource] (IEnumerable`1 nguồn)
Bạn có nhiều khả năng sử dụng một chuỗi kết nối sai – ErikEJ
xin vui lòng xem ảnh chụp màn hình của tôi được cập nhật. Dường như chuỗi kết nối là đúng nhưng phần 'Mật khẩu' bị bỏ qua. –
Bạn có đang thử nghiệm trong linqpad dựa vào tệp cơ sở dữ liệu chính xác không? Tìm trong thư mục bin/debug của bạn - có thể có một bản sao của tệp sdf ở đó! – ErikEJ