10

Tôi đã bắt đầu một dự án MVC mới với EntityFramework -Version 6.1.2 bằng cách sử dụng bản cập nhật mới nhất của Visual Studio 2013. Tôi đã thực hiện một vài di chuyển và cập nhật cơ sở dữ liệu. Sau này tôi đã kiểm tra hiện dự án trên máy tính khác và mở ra với Visual Studio 2015 CTP 6.Làm cách nào để quản lý việc di chuyển EF 6 trong studio trực quan 2015?

Nếu tôi đi trong quản lý gói giao diện điều khiển và cố gắng chạy bất kỳ lệnh di cư, họ không công nhận:

thêm di chuyển: Thuật ngữ 'thêm di chuyển' không được nhận dạng là tên của lệnh ghép ngắn, hàm, tệp kịch bản hoặc chương trình có thể hoạt động. Kiểm tra chính tả của tên hoặc nếu đường dẫn được bao gồm, hãy xác minh rằng đường dẫn là chính xác và thử lại.

Làm cách nào để quản lý di chuyển của mình bằng Entity Framework 6 trong Visual Studio 2015?

+1

Nó vẫn chỉ là CTP ... (xem trước, không có nghĩa là để sử dụng sản xuất) .. vì vậy tôi muốn nói có, nó khá bình thường. không mong đợi đầy đủ chức năng không có lỗi của một phiên bản tiêu chuẩn – walther

+0

Bạn đã cài đặt gói EntityFramwork NuGet trên máy tính thứ hai - tôi thnk hành động đó sẽ cho phép các lệnh powershell. – ErikEJ

+0

Xin chào, Luca. Tôi cũng gặp vấn đề này. Tôi đã chỉnh sửa rất nhiều câu hỏi của bạn. Hãy chắc chắn rằng tôi đã không thay đổi ý định của bạn. Nếu không, tôi sẽ thêm tiền thưởng. –

Trả lời

6

Các bạn đã thử gỡ bỏ cài đặt và cài đặt lại EntityFramwork NuGet gói? Tôi đã có cùng một vấn đề như mô tả và nó giải quyết nó.

+0

trông giống như rc sẽ được ra trong một vài ngày, vì vậy tôi đang chờ đợi để xem nó hoạt động như thế nào. –

+1

Tôi đã làm điều này trên VS 2015 RTM và nó giải quyết vấn đề của tôi mà là giống như câu hỏi. – kenstone

-1

Tôi đã thực hiện một vài kiểm tra, nhưng tôi sẽ cố gắng tóm tắt để trang trải tất cả các kịch bản ef:

ef7 trong một dự án asp.net 5: công tác quản lý di cư đã được thay đổi và bây giờ được xử lý bằng lệnh ef di chuyển.
ef7 trong ứng dụng .net truyền thống: đó là khung bắt buộc 4.5.1, nhưng tại trang này esing ef 7 in a .net app bạn có thể tìm thấy hướng dẫn tốt về cách sử dụng ef 7 trong ứng dụng truyền thống. Điều quan trọng là phải thêm gói EntityFramework.Commands.
ef6: không hoạt động với asp.net 5, vì vậy ngay cả khi bạn có thể cài đặt, bản dựng sẽ bị hỏng. Tình huống tương tự cho hầu hết các trình điều khiển ef thực tế như là trình điều khiển cho mongodb và Postgresql. Nếu bạn không chắc chắn là một trình điều khiển tương thích ef 7, không cài đặt nó. Tại thời điểm này tôi nghĩ rằng bạn có thể đếm chỉ trên sqlserver và inMemory.
cho asp.net 4 ứng dụng, quá trình cài đặt thực tế của các lệnh là một phần của khuôn khổ gói thực thể riêng của mình, như vậy sẽ được lắp đặt tại các cài đặt đầu tiên của gói (như một cách đúng đắn chỉ ra ở trên).
Trong một số trường hợp, trong một môi trường mà gói ef chưa được cài đặt, sao chép dự án asp.net 4 và bắt đầu làm việc, có thể đưa ra vấn đề này, biến mất một cách kỳ diệu khi có bất kỳ lý do gì.

+1

EF6 hoạt động tốt với asp.net 5 với một ngoại lệ: không có hỗ trợ trong trình quản lý gói (PowerShell) cho việc di chuyển. –

+0

Tôi đã thấy nhiều báo cáo không hoạt động với danh tính đi kèm với asp.net 5 và không làm việc với cơ chế Di là cốt lõi của asp.net 5. Tôi nghĩ bạn có thể tự chịu rủi ro . –

2

OK vì vậy tôi có vấn đề này với một dự án EF6 tôi bắt đầu trong VS2013 và VS2015 nâng cấp lên RC. Các lệnh có sẵn nếu tôi mở nó trong VS2013 nhưng không phải trong VS2015. Những gì tôi thấy để giải quyết vấn đề một cách nhanh chóng và dễ dàng là sử dụng lệnh gói cài đặt lại:

Update-Package –reinstall EntityFramework 

này cố định bất kỳ lệnh mất tích lỗi và sau đó cho phép tôi để bắt đầu cập nhật cơ sở dữ liệu và tạo ra cuộc di cư mới trong VS2015.

0

Tôi đã gặp vấn đề tương tự ở chỗ tôi không thể chạy Add-Migration từ Bảng điều khiển quản lý gói, hoặc (mặc dù tôi đã nhận được một lỗi khác.) Thật không may, cài đặt lại EntityFramework không hoạt động cho tôi, có lẽ vì tôi đã có ASP.Net 5 dự án trong cùng một giải pháp. (Đây không phải cho một số csproj truyền thống, vì nó yêu cầu resx không được hỗ trợ theo như tôi biết.)

tôi đã kết thúc việc tạo ra một ứng dụng giao diện điều khiển, tham khảo các dự án trong đó có cuộc di cư của tôi, và bổ sung như sau:

var configuration = GetConfiguration(); 

    var scaffolder = new MigrationScaffolder(configuration); 

    scaffolder.Namespace = configuration.MigrationsNamespace; 

    var scaffoldedMigration = scaffolder.Scaffold(name); 

    System.IO.File.WriteAllText(scaffoldedMigration.MigrationId + ".cs", scaffoldedMigration.UserCode); 
    System.IO.File.WriteAllText(scaffoldedMigration.MigrationId + ".Designer.cs", scaffoldedMigration.DesignerCode); 
    System.IO.File.WriteAllText(scaffoldedMigration.MigrationId + ".resx", BuildResx(scaffoldedMigration.Resources)); 

GetConfiguration trả về một thể hiện của lớp *.Migration.Configuration của bạn. name là tên mới của quá trình di chuyển của bạn. Mã này theo mặc định sẽ thả nó vào thư mục Gỡ lỗi của ứng dụng bảng điều khiển của bạn; kéo và thả từ đó vào Visual Studio trong thư mục Migration của bạn và nó sẽ thực hiện thủ thuật.

Sau này tôi phát hiện ra rằng điều này về cơ bản giống như https://stackoverflow.com/a/20382226/195653 nhưng vì những lý do hoàn toàn khác nhau.

0

Update-Package EntityFramework ... nên thực hiện thủ thuật.

+1

Khi trả lời, vui lòng thêm thông tin khác mà không cần đăng câu trả lời. – tarzanbappa

0

Tôi đã thực hiện tất cả các kết hợp cài đặt lại hoặc gỡ cài đặt và cài đặt EntityFramework cộng với đóng và mở lại VS. Điều duy nhất làm việc là xóa các gói thư mục trong thư mục giải pháp của tôi và xây dựng lại giải pháp để buộc tất cả các gói phải tải xuống.

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