We learned about custom validations that were provided by Entity Framework and MVC in this chapter. We started with client-side validation, which changed the user experience completely, then looked at what would happen if somebody hacks in and bypasses the client-side validation. We overcame those issues by applying second-level validation at the server side. We saw the urge in performing manual validation rather than the framework doing it for us out of the box; we then performed some custom validation that was required beyond the built-in validations. We also applied the same validation to the client side by leveraging IClientModelValidator.  Finally, we performed a remote validation that was not even a part of Entity Framework but was available in the MVC Framework.
So far, we were accessing the data only through data context, and...