gpt4 book ai didi

.net - 相同 POCO 类的多个 edmx

转载 作者:行者123 更新时间:2023-12-02 13:21:35 26 4
gpt4 key购买 nike

我现在有两个 edmx 文件:用于 MySQL 和 SQL Lite(用于进行内存测试)。我需要将它们映射到同一组 POCO 类。可以保留两个 edmx 文件还是应该使用两个具有公共(public)映射和概念模型的存储模型?

更新。我想澄清一下内存中的测试点。我只想在开发人员在本地运行内存测试时使用它们(以使其更快)。但是构建服务器将在 MySQL 上运行测试,以证明它可以与类似生产的数据库一起使用。

最佳答案

不要使用不同的数据库平台进行测试。对于 EF 来说这是绝对错误的做法。每个数据库在其 EF 提供程序中可以有不同的功能支持,因此您将测试不同的代码。

如果您确实想使用两个不同的数据库平台,您应该使用 Fluent API 进行映射,因为它会让事情变得更简单。

当使用 EDMX 文件进行映射时,您总是需要一些口是心非。显然,您的类必须保持不变,因此您的概念模型也必须保持不变。这意味着两个 EDMX 文件的 CSDL 部分必须相同。 SSDL 部分必须不同,因为它针对给定的数据库平台。仅当 SSDL 中的表具有不同名称、不同列、不同方案或关系具有不同名称时,MSL 部分才必须不同。

如果您想减少口是心非,您根本不应该使用 EDMX,而应该直接使用 CSDL、MSL 和 SSDL 文件 - 您将失去设计人员的支持。这也许是正确的,但使用起来要困难得多。

最简单的方法是保持除数据库提供程序之外的所有内容相同,并让一些预构建脚本从 MySQL 的主 EDMX 更新 SQLite 的第二个 EDMX - 此更新的脚本、帮助应用程序或 XSLT 转换完全取决于您。

关于.net - 相同 POCO 类的多个 edmx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7463946/

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