在 EF6 中使用数据注释

Using Data Annotations with EF6

我正在将 WPF 与数据库优先 Entity Framework6 模型一起使用。由于它是数据库优先的,因此在创建的模型中没有 KeyRequired 之类的数据注释。由于所有创建的class都是partial,我可以很方便地手动添加数据注释。有什么副作用吗?这实际上是一个好习惯吗?

Is there any side effect to that?

不,我看不到。除非有一段代码在运行时评估属性,否则属性本身不会真正改变或意味着任何东西。

在 ASP.NET MVC 中,默认模型绑定器会为您执行此操作,但在 WPF 中,框架不会自动评估数据注释。不过,您可以在视图模型 class 中自己执行此操作。请参阅以下博客 post 以获取有关如何执行此操作的更多信息:https://blog.magnusmontin.net/2013/08/26/data-validation-in-wpf/.

Is it actually a good practice?

数据注释实际上并不是 WPF 内置数据验证功能的一部分。验证的最佳做法是在视图模型 classes 中实现 INotifyDataErrorInfo。但是实现本身肯定可以使用 ValidationContext class 评估 entity/model class 的数据注释,如上面 link 所述。如果您实际上在 WPF 应用程序中使用数据注释实体 classes,我会认为这是一个很好的做法。