【问题标题】:Using Data Annotations with EF6在 EF6 中使用数据注释
【发布时间】:2023-03-12 23:07:01
【问题描述】:

我将 WPF 与 Database First Entity Framework 6 模型一起使用。由于它是数据库优先的,因此在创建的模型中没有像 KeyRequired 这样的数据注释。由于所有创建的class 都是partial,因此我可以轻松地手动添加数据注释。这样做有什么副作用吗?这真的是一个好习惯吗?

【问题讨论】:

    标签: wpf annotations entity-framework-6 ef-database-first


    【解决方案1】:

    这样做有什么副作用吗?

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

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

    这真的是一个好习惯吗?

    数据注释实际上并不是 WPF 内置数据验证功能的一部分。验证的最佳实践是在您的视图模型类中实现INotifyDataErrorInfo。但是实现本身当然可以使用上面链接中描述的ValidationContext 类来评估实体/模型类的数据注释。如果您实际上是在 WPF 应用程序中使用带数据注释的实体类,我认为这是一种很好的做法。

    【讨论】:

    • 阅读您的博客后,我决定使用INotifyDataErrorInfo。我只有一个问题。我应该将viewmodel 设为partial class 并将其分解为DataErrorInfoImplementationsPropertiesMethods 等块吗?
    • 您不必这样做。如果由于某些原因班级非常大,这样做可能是一个想法。
    猜你喜欢
    • 2020-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-08
    • 2021-01-16
    相关资源
    最近更新 更多