Вам в основном нужно понимать цели каждого из них. Аннотации данных используются для определения правил и ограничений для вашей модели. Они могут использоваться для проверки базы данных на стороне сервера, на стороне клиента и (для соответствующих частей ). Пользовательский ValidationAttribute
может использоваться для проверки на стороне сервера.
Свободный API используется исключительно для перевода в конфигурацию базы данных. Только атрибуты, такие как MaxLength(n)
, имеют прямое значение на стороне клиента, сервера и базы данных (varchar(n)
). Таким образом, эти атрибуты имеют прямые альтернативы в свободном API. Однако EF не будет автоматически понимать, что означает ваша пользовательская проверка в вашей базе данных. Например, в вашем случае проверка, по-видимому, переводится в отношение один к одному, когда максимальная длина равна 1. Итак, для этого примера восприятия вы можете установить один к одному в свободном API. EF не может проверить код и понять намерение проверки в такой ситуации.
Для всех других значений максимальной длины и минимальной длины нет конфигурации сопоставления, которая может быть установлена в базе данных. Следовательно, свободный API не может иметь функциональности сопоставления для него. Если база данных, которую вы используете, имеет аналогичную функцию, вы можете обратиться к документации по ее библиотеке EF для функции отображения.
Исходя из того, почему вы хотели бы отойти от аннотаций данных, то, что вы действительно ищете, может быть быстрой проверки. Вы можете заглянуть в эту библиотеку и это git repo , которое предоставляет пример чистой реализации моделей при использовании этой библиотеки.