【问题标题】:Several edmx for same POCO classes相同 POCO 类的多个 edmx
【发布时间】:2011-09-18 19:37:35
【问题描述】:

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

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

【问题讨论】:

    标签: .net entity-framework


    【解决方案1】:

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

    如果你真的想使用两个不同的数据库平台,你应该使用 fluent API 进行映射,因为它会更简单。

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

    如果您想减少重复性,则根本不应该使用 EDMX,而应直接使用 CSDL、MSL 和 SSDL 文件 - 您将失去设计人员的支持。这也许是正确的,但更难使用。

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

    【讨论】:

    • 很好的答案!我已经添加了关于您“不要使用不同的数据库平台进行测试”的更新
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-23
    • 1970-01-01
    相关资源
    最近更新 更多