В настоящее время я работаю над своим первым проектом MVC, который представляет собой не что иное, как прославленный блог для моих собственных учебных целей. Я начал с подхода, основанного на базе данных, так как понятия не имел, что код сначала существовал. Это оставило меня в некотором замешательстве относительно того, как мне следует обращаться с валидацией.
У меня есть таблица Articles
в базе данных, которая имеет соответствующий класс Article
, который был сгенерирован для меня EF. У меня также есть класс ArticleViewModel
, у которого есть соответствующее свойство для каждого из свойств в Article
. Хотя у меня работают простые операции CRUD, в настоящее время они используют строго типизированную модель Article
вместо ArticleViewModel
, и проверка данных не выполняется.
Проведя сегодня небольшое исследование, чтобы оценить мои варианты, я нашел следующие вопросы и это сообщение в блоге. Похоже, я могу применить атрибут MetadataType
к сгенерированным EF классам и поместить туда свою проверку, но я продолжаю читать, что классы друзей, содержащие проверку, являются плохой практикой. Я понятия не имею, почему это так, но если это так, значит ли это, что я должен игнорировать классы друзей и делать что-то вроде следующего?
[MetadataType(typeof(ArticleViewModel))]
public partial class Article
{
public Article(ArticleViewModel avm)
{
// Copy the properties from the ArticleViewModel into an Article.
}
}
Затем примените DataAnnotations к ArticleViewModel по мере необходимости и обновите мои контроллеры / представления для использования ArticleViewModel
?
Заранее спасибо за любой вклад. :)