Vì vậy, tôi đã có một DB trong SQL Server mà tôi đang kết nối và sử dụng Entity Framework 4.1 để tạo các lớp POCO của tôi, hoạt động khá tốt. Ngoài ra còn có các thủ tục được lưu trữ mà tôi đang sử dụng tính năng 'nhập khẩu chức năng' để tạo ra các hàng kết quả của dữ liệu từ gọi chúng. Về cơ bản quá trình tôi đang sử dụng là:Phản ánh các thay đổi được thực hiện cho thủ tục lưu sẵn trong Entity Framework-complex type
- Nhấp chuột phải vào các Model.edmx và chọn "Chức năng Import ..."
- Chọn các thủ tục từ menu thả xuống
- Nhập mong muốn nhập khẩu Chức năng của tôi Đặt tên cho
- Bấm "Nhận thông tin Cột"
- Nhấp vào "Tạo Kiểu Complex mới"
- Nhấp "OK"
và điều đó sẽ tạo ra một lớp POCO cho định nghĩa tập hợp kết quả và tôi có thể làm điều gì đó như:
var query = context.GetMyStuff().AsQueryable();
để lấy kết quả. Điều này dường như làm việc tốt.
Bây giờ sự cố tôi gặp phải là khi tôi cố gắng sửa đổi quy trình được lưu trữ và sau đó nhận các thay đổi để truyền cho mã của tôi. Ví dụ, tôi đã thêm một cột bổ sung vào một bảng và sau đó cập nhật thủ tục đã lưu trữ để trả về dữ liệu cột đó như là một phần của kết quả. Tôi không thấy cách làm cho bản cập nhật đó lan truyền vào công cụ nhập hàm, tức là, hãy nhận POCO được tạo để có thuộc tính mới cho cột được thêm vào đó.
Mũi khoan để thực hiện cập nhật đó cho quy trình phản ánh lại ở mặt C# là gì? Tôi sẽ phải thực hiện một lớp học mới mỗi lần? Không rõ ràng đối với tôi làm thế nào để làm điều này.
Thông tin bổ sung:
Khi tôi đã cố gắng để "Update" kiểu Complex, như đề xuất trong việc ứng phó bằng cách Ladislav để this question, tôi nhận được một thông báo lỗi "Xác minh rằng tên FunctionImport là duy nhất . "
Nếu tôi thử những gì E.J. Brennan gợi ý dưới đây, tôi nhận được thông báo lỗi tương tự.
Điều gì hiện hoạt động, ít nhất là với tôi, là mở tệp Model.edmx trong Notepad ++, tìm dòng FunctionImport và xóa nó rồi tạo lại nó. Đó không phải là lý tưởng, nhưng nó hoạt động.
Tôi không chắc chắn nếu đây là cùng một câu hỏi: http://stackoverflow.com/questions/6381423/function-import-when-sp-is-changed –
@Ladislav - thấy điều đó, nhưng khi tôi cố gắng làm điều đó tôi nhận được một lỗi. Tôi sẽ chỉnh sửa câu hỏi của mình ở trên để phản ánh điều đó. – itsmatt