【问题标题】:OnModelCreating vs DataAnnotations for Database Configuration用于数据库配置的 OnModelCreating 与 DataAnnotations
【发布时间】:2012-04-07 00:05:43
【问题描述】:

我有一个 ntier 解决方案,其中有一个用于我的 POCO 类的域项目。我想用一些限制为特定长度的表字段生成数据库。现在我看到了两种方法,一种是 POCO 类本身中的数据注释,另一种是在我的 DbContext 中使用 OnModelCreating 方法,但哪种方法最好?

我对 OnModelCreating 方法的担忧是它特定于实体框架。如果我切换到另一个 ORM,除非我重新实现它,否则数据库配置会丢失。

使用注释方法,我最终会弄乱我的模型并担心它们会丢失“POCO”标签。我也不确定其他 ORM 是否会尊重注释。另一方面,关于数据库应该是什么样子的所有信息都与模型相关联,因此易于维护。

有什么想法可以为我指明正确的方向吗?

【问题讨论】:

    标签: asp.net-mvc entity-framework poco


    【解决方案1】:

    OnModelCreating 更好。某些映射功能无法通过数据注释获得。此外,正如您已经提到的,在某些情况下,数据注释违反 POCO 原则,因为您的类可以包含有关持久性的信息,甚至某些数据注释当前需要在您的域项目中引用 EntityFramework.dll。

    还要注意,数据注释是 MS 特定的功能,主要由 MS 工具使用。如果您想将它们与其他 ORM 一起使用,则必须实现从数据注释到 ORM 映射描述的转换(除非它已经存在)。

    【讨论】:

      猜你喜欢
      • 2020-05-01
      • 2013-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多