gpt4 book ai didi

entity-framework - 有没有人将 Entity Framework 与代码优先方法与 Edmx 文件混合使用?

转载 作者:行者123 更新时间:2023-12-04 06:05:44 24 4
gpt4 key购买 nike

我目前分配给一个项目,他们的遗留系统以可怕的方式设计,而且过于关注数据库设计。我试图整合一个新设计,让客户可以一点一点地迁移旧系统。

他们目前正在使用 EF 4.1 但不是代码优先方法,实体描述/映射位于 edmx 文件中。他们每次都做逆向工程想要扩展模型(首先在数据库中进行更改,然后通过自定义工具将它们向上反射(reflect)到模型层)。

我想知道的是,如果有人在映射类中使用过 edmx 和代码优先方法。有什么缺点要知道吗?

最佳答案

只有当每种方法都有单独的上下文类型时,才可以一起使用 EDMX 和代码映射(不能在单一上下文类型中混合使用方法)。这可能是最大的缺点,因为它会导致更复杂的代码和维护。

例如,如果您需要在两种上下文类型中都有一些实体以将其与新代码和旧代码一起使用,则必须两次维护其映射。您还必须非常小心不要复制实体类本身=您的代码首先必须使用由自定义工具为 EDMX 生成的类,但如果他们在当前解决方案中不使用 POCO,则这是不可能的。

另一个问题是数据库完整性。如果您需要在单个事务中保存对两种上下文类型的更改,则必须使用 TransactionScope和分布式事务 = MSDTC(每个上下文实例将处理自己的数据库连接)。

如果您确定将迁移整个系统,您可能可以考虑先使用代码而不是 EDMX(但请注意,代码优先映射和 DbContext 通常提供更有限的功能集)。如果您不确定是否能够完成整个迁移,请不要考虑先使用代码,因为让系统处于一半使用代码第一次使用 EDMX 的状态只会使一切变得更糟,更可怕。

确定是理论上的,因为在软件开发中,您唯一可以确定的是需求/情况会发生变化。这意味着应该非常仔细地考虑迁移。

关于entity-framework - 有没有人将 Entity Framework 与代码优先方法与 Edmx 文件混合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8396814/

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