2013-01-18 33 views
11

Tôi có một số thủ tục được lưu trữ được ánh xạ trong Khuôn khổ thực thể bằng cách sử dụng Cơ sở dữ liệu đầu tiên. Nó tạo ra phương pháp gõ mạnh mẽ mà bạn có thể gọi để chạy các thủ tục được lưu trữ. Tuy nhiên, tôi đã gặp phải một vấn đề đáng kể, trong đó tôi không thấy bất kỳ cách nào để gọi các phương thức này mà nó tạo ra với các tham số mặc định được định nghĩa trong các thủ tục đã lưu trữ. Điều này có nghĩa là:Khung thực thể - Gọi thủ tục lưu sẵn với các tham số mặc định

a) Tôi phải thêm thủ công các tham số mặc định vào các cuộc gọi phương thức, dễ vỡ, nếu giá trị tham số mặc định thay đổi.

b) Viết quá tải phương thức bằng tay. Điều này về cơ bản loại bỏ lợi ích của việc tạo ra một mô hình từ cơ sở dữ liệu ở nơi đầu tiên.

Có ai biết nếu có giải pháp tốt hơn cho vấn đề này không?

Cảm ơn.

+0

bạn luôn có thể đặt giá trị mặc định cho thuộc tính thực thể thông qua cửa sổ thuộc tính.Điều đó không giúp bạn.? –

+0

Điều đó sẽ vẫn liên quan đến việc tôi nhập thủ công giá trị mặc định- nếu giá trị mặc định của proc đã từng thay đổi sẽ không có cách nào để tự động giữ cho nó được đồng bộ hóa với mô hình. – MgSam

+1

Bạn có thể viết các procs cung cấp cho bạn các giá trị mặc định từ máy chủ không? –

Trả lời

6

Kể từ tháng 1 năm 2013, không có cách nào được hỗ trợ để thực hiện Khuôn khổ thực thể.

Tôi đã mở yêu cầu tính năng here.

+0

Có thể bạn đã biết nhưng ... do di chuyển, họ đã đóng vé của bạn và nó sẽ được mở lại trong cộng đồng github nếu bạn muốn nó được xem xét lại https://github.com/aspnet/EntityFramework6/ vấn đề – Sycraw

3

Đây là giải pháp khắc phục sự cố. Tôi không biết nếu có một tính năng trong EF để hỗ trợ các tham số tùy chọn, nhưng bạn có thể thử mô phỏng nó - nếu bạn sẵn sàng thay đổi các thủ tục được lưu trữ.

Bạn có thể thay đổi giá trị mặc định trong định nghĩa thủ tục được lưu trữ thành NULL và sau đó trong phần thân của quy trình, thay thế các tham số NULL bằng giá trị mặc định mong muốn. Sau đó, từ mã sử dụng EF, bạn có thể vượt qua null để cho biết sử dụng mặc định. Bằng cách này ít nhất là mặc định chỉ được xác định trong bản thân SP.

Hạn chế bao gồm tất nhiên bây giờ NULL trở thành giá trị "ngoài băng", nghĩa là bạn không thể chuyển nó sang SP nếu đó là những gì bạn cần (ngoài việc thay đổi SP của bạn và đảm bảo tất cả sử dụng quy ước kỳ lạ này)

+0

Có, tôi thực sự đã đề xuất chỉ thực hiện việc này nhưng nó gây ra các biến chứng khác cho chúng tôi vì vậy nó không phải là một lựa chọn không may. – MgSam

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