我目前正在开发我的第一个 MVC 项目,这只不过是一个用于我自己学习目的的美化博客。我从数据库优先的方法开始,因为那时我什至不知道代码优先的存在。这让我对如何处理验证有些困惑。
我在数据库中有一个表,它有一个由 EF 为我生成Articles
的相应类。Article
我还有一个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
?
提前感谢您的任何意见。:)