gpt4 book ai didi

entity-framework - Entity Framework 模型优先设计不会让您编辑表映射?

转载 作者:行者123 更新时间:2023-12-04 08:29:16 25 4
gpt4 key购买 nike

如果我们已经使用 Entity Framework 4 模型一段时间了,并且我们最终想将底层数据库切换到不同供应商的产品(比如,从 SQL Server 到 MySQL),调整表和实体模型中的列映射而不需要更新任何实体类代码?

我们正在尝试设计尽可能与数据库无关的代码,所以我想提前知道如果我们切换数据库我们会遇到多少麻烦。理想情况下,我们不想接触使用实体类的应用程序。我似乎无法在实体设计器或 XML 编辑器中找到任何方法来调整基础数据库列名称而不给我一个错误。

(但是,我可以在设计器中编辑实体的属性名称,同时单独保留数据库列名称,但这与我需要的相反。)

谢谢!

最佳答案

EDMX 与数据库无关。 EDMX 的 SSDL 部分与数据库服务器紧密耦合(在 MSSQL 的情况下甚至与其版本)。每个受支持的数据库服务器都需要单独的 SSDL。

我不明白更改列名与数据库不可知模型有何关系。反转是真的!如果您需要您的数据库为不同的服务器产品使用不同的列名,您需要为每个产品单独映射!

仅当您修改用于生成数据库创建 SQL 脚本的 T4 模板时,才能在首先使用模型时更改列名。但每次创建时,脚本设计器都会删除整个存储描述 (SSDL) 和映射 (MSL),并用新的替换它们。

拥有与数据库无关的代码的最简单方法是首先使用代码,但即便如此,您也可能会遇到服务器之间某些类型和功能不一致的问题。

如果你想要与数据库无关的 ORM,你应该检查 NHibernate。

关于entity-framework - Entity Framework 模型优先设计不会让您编辑表映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6796586/

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