Viewmodels - рекомендация - однако многие проекты по какой-то причине предпочитают не использовать их в качестве своей основной функциональности - возможно, простота.
Итак, чтобы конкретно ответить на вопрос - вы можете определить классы метаданных, которые затем будут содержать те же свойства, что и ваши существующие классы.
Лучше всего использовать модели представлений, но вы действительно можете сделать это с вашими существующими моделями.
Как то так
//Defines that you are going to use CustomerMetaData as the class to define the rules.
//This is named the same as your ORM class and doesnt need to contain anything in it.
[MetadataType(typeof(CustomerMetaData))]
public partial class Customer
{
//Don't need anything here
}
public class CustomerMetaData
{
[Required()]
public string CustomerName {get;set;}
}