2012-04-16 37 views
10

Tiện ích di chuyển EF có vẻ khá tốt đẹp khi sử dụng mã đầu tiên.Sử dụng công cụ di chuyển EF4 với phương pháp tiếp cận kiểu mẫu đầu tiên

Dựa trên this blog post, tôi đã thử đặt trong dự án của mình nơi chúng tôi sử dụng mô hình đầu tiên. Khi chạy Enable-Migrations lệnh, tôi nhận được lỗi sau:

Creating a DbModelBuilder or writing the EDMX from a DbContext created using Database First or Model First is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel.

Có cách nào để khắc phục nó vì vậy chúng tôi có thể sử dụng chuyển đổi EF mà không cần chuyển sang mã đầu tiên?

+1

Tôi đoán không - đó là những gì ngoại lệ nói nhưng nó sẽ là một gợi ý tốt đẹp cho [Data UserVoice] (http://data.uservoice.com/forums/72025-entity-framework-feature-suggestions). –

+0

+1 cho liên kết blog –

Trả lời

3

Tôi có một mục blog không đầy đủ về cách bạn có thể thực hiện việc này. Không chắc chắn nếu nó sẽ phù hợp với nhu cầu của bạn, nhưng có vẻ là phương pháp duy nhất có sẵn cho đến nay.

Về cơ bản, bạn sử dụng tùy chỉnh t4 để tạo DbMigrationsConfiguration và DbContext từ mô hình của bạn và bạn không cần phải chạy Enable-Migration. Chỉ cần chạy Add-Migration và Update-Database trong Package Manager Console.

http://blog.amusedia.com/2012/08/entity-framework-migration-with-model.html

tôi sẽ cập nhật blog entry và t4 để làm cho nó thân thiện với người dùng hơn sau đó.

+0

Thú vị, tôi sẽ quay lại làm việc sau ba tuần và đảm bảo kiểm tra điều này, cảm ơn. – Johnny5

+0

Tôi đã không áp dụng điều đó cho dự án của mình, chưa chắc chắn liệu nó có hoạt động hay không, nhưng nó có vẻ là giải pháp duy nhất cho đến nay. – Johnny5

+0

Tôi gặp vấn đề tương tự. Nhưng plugin Code Second không hoạt động với EF 6 ...... Làm cách nào để giải quyết vấn đề này? – Franva

3

Tôi đang tìm giải pháp tương tự và tìm thấy điều này: Entity Designer Database Generation Power Pack Sau khi cài đặt, khi bạn chọn "Tạo cơ sở dữ liệu từ mô hình ...", nó sẽ bật trình hướng dẫn mới và bạn có thể chọn "Tạo T-SQL di chuyển" .

Các vấn đề liên quan