Trong khi cố gắng triển khai EF Migrations trong dự án của tôi, tôi bị kẹt ở một nơi.Mã EF First MigrateDatabaseToLatestVersion chấp nhận tên chuỗi kết nối từ cấu hình
Mã EF First MigrateDatabaseToLatestVersion chấp nhận chuỗi kết nối Tên từ cấu hình.
Trong trường hợp tên cơ sở dữ liệu của tôi được biết đến tại Thời gian chạy (Người dùng chọn nó từ trình đơn thả xuống). Chỉ cách DbContext hoặc chấp nhận, hoặc ConnectionString connectionString Tên trong constructor của nó, "MigrateDatabaseToLatestVersion" không chấp nhận cùng
System.Data.Entity.Database.SetInitializer (new MigrateDatabaseToLatestVersion<SrcDbContext, SRC.DomainModel.ORMapping.Migrations.Configuration>(connString));
Có cách nào khác để đạt được điều này?
bạn có thể chuyển Dynamic ConnectionStringName vào Bối cảnh trong quá trình khởi tạo. Bạn chuyển ngữ cảnh đến bộ khởi tạo. Tại sao cần phải vượt qua đây? SrcDBConText nên được tạo với kết nối giống như của bạn. Database.SetInitializer (mới MigrateDatabaseToLatestVersion()); phải đủ –
-Cảm ơn. Tôi đã thử điều này. Nó tạo ra db với tên {0} trong tệp Config của tôi. Tôi muốn sử dụng MigrateDatabaseToLatestVersion và không phải là trình khởi tạo cũ đơn giản, nơi tôi sẽ phải duy trì hai bản sao khởi tạo (một cho việc di chuyển, một bản sao khác để tạo DB mới). Tôi đang tạo ra các ràng buộc duy nhất trong quá trình di chuyển. –
DbContext có thể được chuyển qua chuỗi kết nối hoặc Tên kết nối. Tôi làm điều tương tự như kế hoạch của bạn để làm. 1 bối cảnh được sử dụng một lần nữa nhiều DB để di chuyển. Sau đó, nhiều bối cảnh bị ràng buộc với initializer = null truy cập các DB. Không chắc chắn lý do tại sao nó không hoạt động cho bạn xin lỗi. –