5

Tôi có một ứng dụng ASP.NET MVC sử dụng Entity Framework 5.0 và Mã đầu tiên.Khi xuất bản từ VS 2012 vào một trang web Azure dữ liệu hạt giống Khung thực thể của tôi không được chèn vào trong SQL Azure

Tôi đã xuất bản trang web của mình bằng Visual Studio 2012 lên Azure Website. Mọi thứ dường như hoạt động ngoại trừ dữ liệu hạt giống không được chèn vào SQL Azure; trang web hoạt động, cơ sở dữ liệu được xây dựng, nhưng dữ liệu hạt giống là không được gắn. Khi tôi chạy nó trên máy cục bộ, mọi thứ hoạt động chính xác.

Dựa trên các ví dụ mà tôi đã thấy, khi xuất bản từ Visual Studio 2012 có một tùy chọn được gọi là "Thực thi mã di chuyển đầu tiên" (xem hình bên dưới).

enter image description here

Nhưng khi tôi cố gắng để xuất bản trang web của tôi tùy chọn “Thực hiện Luật Đầu Migration” là không sẵn. enter image description here

Tôi tin rằng điều này có thể liên quan đến cách giải pháp của tôi được định cấu hình. Tôi có 3 dự án tạo nên đơn đăng ký của tôi.

  • Trang web - Đây là dự án ASP.NET MVC. Nó có khung tham chiếu thực thể, nhưng tất cả mã truy cập dữ liệu (DBContext) nằm trong dự án dữ liệu
  • miền - Đây là thư viện lớp học. Nó không có tham chiếu đến Entity Framework
  • Dữ liệu - Dự án này có tham chiếu đến Khung thực thể. Tôi có một lớp cấu hình kế thừa từ DbMigrationsConfiguration. Trong lớp Cấu hình này, tôi ghi đè phương thức Seed.

Một lần nữa, tất cả đều hoạt động trên máy tính cục bộ của tôi. Đối với hầu hết mọi thứ tất cả mọi thứ hoạt động trên Azure; các trang web hoạt động, cơ sở dữ liệu được xây dựng, nhưng dữ liệu hạt giống không được chèn vào.

Đối với kịch bản của tôi, có đề xuất nào về cách lấy dữ liệu hạt giống để chèn vào SQL Azure khi tôi xuất bản từ Visual Studio 2012 không?

+0

Bạn có thể cần xác định bối cảnh khung thực thể trong tệp web.config. Hướng dẫn có thể tìm thấy chi tiết tại đây (http://www.ralphlavelle.net/2012/09/entity-framework-code-first-webconfig.html). –

Trả lời

0

Bạn sẽ cần phải chỉnh sửa thủ công tệp pubxml của bạn (Thuộc tính/PublishingProfiles/YourName.pubxml) để làm cho hộp kiểm xuất hiện. Tôi có một bài viết trên blog mô tả tình hình và giải pháp ở đây: http://www.dominicstpierre.net/2012/11/enable-code-first-migrations-check-box.html

Phần này cần phải được thay đổi bằng tay

<PublishDatabaseSettings> 
    <Objects xmlns=""> 
    <ObjectGroup Name="Namespace.Models.YourDBClass" Order="1" Enabled="True"> 
     <Destination Path="your-connection-string-goes-here" /> 
     <Object Type="DbCodeFirst"> 
     <Source Path="DBMigration" DbContext="Namespace.Models.YourDBClass, AssamblyName" MigrationConfiguration="Namespace.Migrations.Configuration, Assambly" Origin="Convention" /> 
     </Object> 
    </ObjectGroup> 
    </Objects> 
</PublishDatabaseSettings> 

Thay đổi Namespace.Models.YourDBClass bởi lớp học của bạn mà được thừa hưởng DbContext, thay đổi Namespace.Migratins.Configuration để phù hợp với không gian tên cấu hình di chuyển của bạn và Assambly với tên Assambly của bạn.

Lưu và mở trình hướng dẫn xuất bản bạn sẽ có hộp kiểm đó.

+1

Điều này dường như không còn hoạt động trong VS2013update4 nữa. – sheamus

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