2013-08-03 43 views
36

Tôi đã gặp phải các vấn đề vô tận với các thủ tục được lưu trữ và EDMX. Tôi đã tạo một thủ tục, cập nhật mô hình từ cơ sở dữ liệu và tất cả đã hoạt động. Sau đó tôi đã loại bỏ một cột và thêm một cột mới vào thủ tục đã lưu trữ. Tôi đã cập nhật mô hình, nhưng EDMX dường như không làm mới định nghĩa proc.Thủ tục lưu trữ và cập nhật EDMX

Tôi đã bỏ proc, và thực hiện cập nhật, nhưng bằng tay phải xóa tất cả các tham chiếu đến proc. Tôi đã kết thúc việc đổi tên proc và nhập thông qua cập nhật mô hình từ cơ sở dữ liệu.

Tôi vừa gặp sự cố tương tự. Đã thêm một cột mới và được đổi tên thành cột hiện có. Tôi làm mới EDMX thông qua mô hình cập nhật từ cơ sở dữ liệu, nhưng không có thay đổi đối với EDMX, và rõ ràng là ở thời gian chạy, nó không thành công. Làm thế nào để cập nhật thủ tục lưu trữ được thực hiện với Entity Framework?

enter image description here

tôi loại bỏ các proc, tái tạo các mô hình, xóa các tập tin của cs 'cho proc, biên soạn, sau đó bổ sung các thủ tục để cơ sở dữ liệu một lần nữa, tái tạo các mô hình, và đập! Nó cho biết thêm cùng một mô hình 3 lần, chỉ với mô hình cuối cùng là đúng. Tại sao nó tiếp tục mang lại các phiên bản cũ?

Trả lời

7

Sửa lỗi duy nhất tôi có thể tìm là đóng EDMX và chỉnh sửa XML theo cách thủ công, ngay cả sau khi xóa proc được lưu trữ khỏi cơ sở dữ liệu và cập nhật mô hình từ cơ sở dữ liệu - vẫn đề cập đến proc. Loại bỏ các dòng từ XML đã giải quyết được vấn đề.

89

(Giải pháp này là dành cho EF 6. Tôi đã không cố gắng trong các phiên bản EF khác. Nó hoạt động tốt đẹp.)


Đến Xây dựng mô hình trình duyệt. MyStoreProc là tên của thủ tục được lưu trữ (làm ví dụ). MyStoreProc sẽ xuất hiện ở 3 nơi.

  1. địa điểm- 1st Dưới Complex Types-> như MyStoreProc_result
  2. 2 địa điểm- Dưới Nhập khẩu Chức năng -> như MyStoreProc
  3. 3rd Place - Dưới Stored Procdures/Chức năng -> như MyStoreProc

Xóa tất cả ba từ mô hình. Lưu edmx (bằng cách nhấp vào trong cửa sổ rồi nhấn ctrl + S). Sau đó, nhấp chuột phải và nhấp vào cập nhật mô hình từ cơ sở dữ liệu. Sau đó, thêm thủ tục được lưu trữ được cập nhật và Lưu lại.

giải quyết mà không có rắc rối nào :)

+0

Bạn là người tiết kiệm cuộc sống: D ... Cảm ơn! – Muhammedh

+1

Cảm ơn Muhammedh – SArifin

+0

Điều này rất hữu ích, cảm ơn! Tôi phải thừa nhận rằng tôi là một chút nonplussed bởi vì tôi đã tìm kiếm điều này trong sơ đồ edmx và Thủ tục lưu trữ không được hiển thị ở đó - chỉ Bảng và Views. –

1

Trước hết ta làm mới SP của bạn thông qua "Cập nhật mô hình từ cơ sở dữ liệu", nếu nó là làm việc, tiền phạt, nếu không muốn nói và ném ngoại lệ tương tự sau đó làm theo các bước dưới đây . 1.Nhấp đúp vào tập tin .edmx. 2. Trong trình duyệt mô hình, xóa SP từ các loại phức tạp, nhập khẩu chức năng và các thủ tục/chức năng được lưu trữ. 3. Lưu tất cả. 4.Thêm lại SP của bạn thông qua "Mô hình cập nhật từ cơ sở dữ liệu". 5.Lưu tất cả.

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