2012-02-14 36 views
5

Tôi muốn sử dụng ELMAH với máy chủ sql trên dự án ASP.net MVC 3 của tôi, cùng với EF 4.3.Các kịch bản cơ sở dữ liệu tự động ELMAH

Có cách nào tôi có thể chạy tập lệnh sql tự động tạo bảng elmah không?

Tôi đoán rằng di chuyển ef có thể thực hiện công việc nhưng tôi chưa sử dụng chúng nhiều.

Tôi đang hướng tới giải pháp mà bạn có thể kiểm tra giải pháp và chạy nó thẳng lên (để sqlexpress hoặc máy chủ sql toàn diện đang triển khai) và có nó hoạt động mà không cần phải chạy các tập lệnh trợ giúp sql khác nhau

Trả lời

5

Thêm di chuyển dựa trên mã trống (chỉ cần nhập add-migration ElmahSetup khi không có thay đổi DB đang chờ xử lý).

Sau đó, thêm các cuộc gọi tới Sql() để chạy elmah theo phương thức Up(). Để làm cho giải pháp hoàn tất, bạn phải thêm các câu lệnh thả tương ứng vào phương thức Down().

+0

bạn cũng có thể cung cấp các tập lệnh xuống không? – Adaptabi

+0

Tôi không biết kịch bản trông như thế nào - nhưng việc tạo phương thức 'Down()' về cơ bản là một tập hợp các câu lệnh 'Drop' cho mọi thứ được tạo ra trong phương thức' Up() '. –

+2

Giải pháp tuyệt vời @AndersAbel Đây là kịch bản của tôi để làm điều này với di cư EF: [link] (https://gist.github.com/danmusk/7265235) – DanMusk

3

Tôi biết câu hỏi này là dành cho EF 4.3, nhưng nếu bạn đang sử dụng EF 6.1 thì bây giờ có gói nuget sẽ khởi chạy bảng và procs Elmah cho bạn: https://www.nuget.org/packages/Elmah.SqlServer.EFInitializer/. Thêm nó vào dự án web của bạn. Sau đó nó sẽ sử dụng mã EF đầu tiên để tạo ra nó cho bạn. Nó thêm một Initializer vào thư mục App_Start của bạn để bạn thực sự không phải thêm bất kỳ mã nào. Nó sẽ thêm một di chuyển vào cơ sở dữ liệu của bạn để đảm bảo nó chỉ được thêm một lần.

+0

Đây là một cách tiếp cận rất hay. Đã lưu rất nhiều đau đầu :) –

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