gpt4 book ai didi

asp.net-mvc - 用于数据库配置的 OnModelCreating 与 DataAnnotations

转载 作者:行者123 更新时间:2023-12-02 07:27:23 26 4
gpt4 key购买 nike

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

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

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

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

最佳答案

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

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

关于asp.net-mvc - 用于数据库配置的 OnModelCreating 与 DataAnnotations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9822105/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com