Проверка данных. Часть 4 – Создаем атрибуты проверки данных
Рассмотрев в прошлой части основы создания атрибутов проверки данных, приступаем к их реализации. Но сначала установим два соглашения:
Про C#, .NET, AI, LLM, Agents, Azure, ASP.NET Core, EF, IoC и другие умные слова
Рассмотрев в прошлой части основы создания атрибутов проверки данных, приступаем к их реализации. Но сначала установим два соглашения:
Отметив с помощью стандартных атрибутов часть свойств Модели, можно добиться простого контроля получаемых значений. Для остальных правил можно разработать свои реализации атрибутов. Чтобы понять принцип их создания, посмотрим на составляющие класса ValidationAttribute.
Присвоим стандартные атрибуты свойствам классов Модели разрабатываемого веб-приложения.
Перейдем к назначению атрибутов свойствам Модели. И перед тем как начать создавать их свои реализации, посмотрим какие готовые варианты уже существуют в .NET.
В текущей версии демонстрационного веб-приложения при заполнении формы пользователь может ввести и сохранить любые данные. В базу данных попадут даже заведомо c некорректные с точки зрения бизнес-логики значения. Давайте исправим эту ситуацию и добавим контроль вводимых значений. А начнем с того, что разберемся как работает этот механизм в ASP.MVC 3.
Завершим изучение Entity Framework Fluent API рассмотрением возможностей настройки связей.
Давайте посмотрим как можно определить контракт для интерфейса. Кроме того, разберемся как настраивать реакцию на ошибки под собственные потребности.
Code Contracts – новинка, появившаяся с выходом четвертой версии .NET. Это библиотека, реализующая идею программирования по контракту. Несколько упрощая можно сказать, что её суть заключается в установке условий, которые должны соблюдать параметры методов и свойства объекта.
Продолжим изучение возможностей Entity Framework Code First для указания соотношений классов Модели и создаваемых таблиц. На очереди второй способ – использование Fluent API.
В прошлой части были рассмотрены соглашения, на основе которых Entity Framework Code First генерирует таблицы для хранения данных. Но что делать, если требования бизнес-логики не совпадают с соглашениями по умолчанию? Можно ли сделать свойство MySupertProperty первичным ключом?