2010-05-04 32 views
6

Tôi đã tự hỏi đề xuất chung là gì cho Entity Framework về xác thực dữ liệu. Tôi tương đối mới đối với EF, nhưng dường như có hai cách tiếp cận chính để xác thực dữ liệu.Thực tiễn tốt nhất - Chú thích dữ liệu so với OnChanging trong khung thực thể 4

Đầu tiên là tạo một lớp từng phần cho mô hình, sau đó thực hiện xác thực dữ liệu và cập nhật tập hợp các vi phạm quy tắc. Điều này được nêu tại http://msdn.microsoft.com/en-us/library/cc716747.aspx

Cách khác là sử dụng chú thích dữ liệu và sau đó có chú thích thực hiện xác thực dữ liệu. Scott Guthrie giải thích điều này trên blog của mình tại http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx.

Tôi đã tự hỏi những lợi ích của cái này so với cái kia. Dường như chú thích dữ liệu sẽ là cơ chế ưu tiên, đặc biệt khi bạn chuyển sang Dịch vụ RIA, nhưng tôi muốn đảm bảo rằng tôi không thiếu gì đó. Tất nhiên, không có gì ngăn cản việc sử dụng cả hai chúng lại với nhau.

Cảm ơn

John

Trả lời

1

tôi đã được sử dụng DataAnnotations sử dụng MVC 2 và nó hoạt động tuyệt vời. Tôi đã không cố gắng một phần trên một đối tượng thực thể để xác nhận, nhưng tôi thấy việc sử dụng nó. Về cơ bản nếu tôi tạo một lớp một phần trên một đối tượng thực thể, tôi sử dụng nó cho các dữ liệu mặc định như một định danh GUID. hoặc Tạo Ngày hoặc Ngày sửa đổi. Tôi đoán nó sẽ hữu ích để thêm xác nhận hợp lệ trong một phần lớp có lẽ cho một số xác nhận phức tạp mà cần phải xảy ra trong lớp thực thể nhưng ngay cả sau đó những xác nhận hợp lệ có thể được thực hiện trong validator tùy chỉnh. Nếu bạn đang sử dụng một trang web MVC sau đó tôi sẽ cá nhân sử dụng dataannotations.

+0

Bạn nghĩ sao về vấn đề mà Brad Wilson nêu ra ở đây? Tôi đoán tôi đang đấu tranh với các chú thích dữ liệu vì chúng dường như quá nhiều phép thuật :) http://bradwilson.typepad.com/blog/2010/01/input-validation-vs-model-validation-in-aspnet- mvc.html –

+0

Trước tiên hãy để tôi cảm ơn bạn đã chỉ ra bài viết này. Đó là một trong những tốt. Đây là một bài viết cung cấp thông tin về cách thức và lý do thay đổi thiết kế từ Xác thực đầu vào đã thay đổi trong MVC1.0 thành Xác thực mẫu. Tất cả các điểm của anh ta đều hợp lệ và cần được cân nhắc trong giai đoạn thiết kế của bạn. Cuối cùng Chú thích dữ liệu không phải là ma thuật mà chúng chỉ đơn giản là thuộc tính thuộc tính mà bạn áp dụng để buộc mã xác thực chạy khi bạn liên kết với mô hình của mình. –

+0

Liên kết này giải thích những gì tôi đã hy vọng làm .... http://daniel.wertheim.se/2009/11/18/entity-framework-4-part-5-validation-using-dataannotations/ Tích hợp các chú thích dữ liệu với một lớp dịch vụ. Tôi đã gặp một số vấn đề vì tôi đang phát triển cho Azure và khung công tác 3,5 không hỗ trợ Validator.TryValidateObject. DOH! Cảm ơn –

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