Entity framework kiểm tra lỗi trên model

By
Advertisement
Việc kiểm tra lỗi trên model đối với asp.net mvc khá là đơn giản như hình bên dưới, chỉ cần dùng ModelState.IsValid là xong. Tuy nhiên đối với các môi trường khác chạy .net thì ta phải valid model như thế nào? bài viết này xin giới thiệu một cách làm, cách làm này ban đầu được dùng cho phiên bản mvc 3.


Mô tả cách làm:

Cách Thi giới thiệu này người ta gọi là Class-Level Model Validation. bằng cách dùng interface IValidatableObject với method Validate() ta viết valid vào trong đó, cách này dùng có thể kết hợp được với DataAnnotation attributes nhưng mà không phải lúc nào DataAnnotation attributes cũng giải quyết được các bussiness phức tạp.

Code Ví dụ:

Bạn có thể tham khảo code ví dụ sau:

với code trên sau khi chạy hàm Validate ta sẽ có một danh sách lỗi :). Khoan đã, chẳng lẽ mỗi đối tượng phải chạy một lần sao? viết vầy mệt lắm. Đừng lo xem tiếp đi đã
Tới đây hiểu rồi nhé, tại context sẽ get lỗi thông qua interface bằng hàm GetValidationError(), ta cũng chẳng cần gì ngoài thế, cứ tiếp mà chơi thôi. Cái errors trả về bao gồm lỗi ta định nghĩa bằng DataAnnotation attributes và lỗi ta định nghĩa bằng IValidatableObject, quá hay phải không nào.

Ứng dụng ở đâu

Trong các môi trường có thể dùng EF mà không hỗ trợ ModelState, ta phải valid phức tạp hơn, như winform, wpf, console, test ... ta dùng cách này khá hữu dụng. Mô hình này có thể ứng dụng nhiều để tăng tính hiệu quả của việc dùng EF.

Tóm lại

Bài viết dở tệ này giới thiệu đến bạn một cách valid model từ entity, ứng dụng IValidatableObject, dùng cho Entity Framework, hỗ trợ trong trường hợp DataAnnotation attributes không hoạt động được hoặc hoạt động không đầy đủ, đồng thời mở ra cách valid cho model trong môi trường không hỗ trợ sẵn ModelState như winform, wpf, console.



0 blogger:

Đăng nhận xét