我正在使用带有数据库第一实体框架 6 模型的 WPF。由于它是数据库优先的,因此创建的模型中没有Key
或Required
等数据注释。由于所有创建的class
都是partial
的,我可以轻松地手动添加数据注释。这有什么副作用吗?这真的是一种好的做法吗?
这有什么副作用吗?
不,不是我能看到的。属性本身不会真正改变或意味着任何内容,除非有一些代码在运行时评估属性。
在 MVC ASP.NET 中,默认模型绑定器会为你执行此操作,但在 WPF 中,框架不会自动评估数据批注。不过,您可以在视图模型类中自己执行此操作。有关如何执行此操作的更多信息,请参阅以下博客文章:https://blog.magnusmontin.net/2013/08/26/data-validation-in-wpf/。
这真的是一种好的做法吗?
数据批注并不是 WPF 内置数据验证功能的一部分。验证的最佳做法是在视图模型类中实现 INotifyDataErrorInfo。但是实现本身肯定可以使用上面链接中所述的ValidationContext
类来评估实体/模型类的数据注释。如果您实际在 WPF 应用程序中使用数据批注实体类,我认为这是一种很好的做法。