【问题标题】:EntityTypeConfiguration - What is a clean method to test mapping against the database?EntityTypeConfiguration - 测试数据库映射的干净方法是什么?
【发布时间】:2011-06-23 16:12:32
【问题描述】:

背景:

我公司目前的结构是使用 Plinqo/Linq to Sql 来创建“数据访问对象”,然后使用一组自定义的 CodeSmith 模板来构建“业务对象”。长话短说,这两组对象非常紧密耦合,并且使用 Linq to SQL 会导致非常丑陋的解决方法。

Plinqo 模板在生成 dbml 后直接 1:1 映射表到类。这会带来一些安慰,因为如果数据库发生更改,业务对象端(或应用程序端)会出现编译时错误。

我正在慢慢尝试证明 EF 4.1(代码优先)映射到现有架构的好处,但是代码生成的这种“类型安全”已经成为关键利益相关者心中的一个大问题。

问题:

所以在实体框架 4.1 中,我先使用代码映射到现有数据库。

  • Poco 域对象
  • 每个映射的EntityTypeConfiguration

您会建议什么作为测试项目以确保到架构的映射是正确的?我应该只创建一个单元测试项目并检索每个对象还是有更好的方法?

谢谢!

【问题讨论】:

    标签: unit-testing mapping entity-framework-4.1 database-schema


    【解决方案1】:

    我使用了一个基本的通用集成测试来执行 CRUD 操作,而派生测试仅包含用于创建实体和验证每个操作的结果的方法。每个测试方法都在未提交的事务范围内运行,因此测试数据库仍处于初始状态。

    在您开始使用存储库而不是使用单一实体类型而开始使用聚合根的情况下,这可以进一步改进。在这种情况下,通过操作聚合根创建正确的集成测试非常方便。

    【讨论】:

    • 谢谢。我认为某种形式的单元测试将是最好的方法。我负责实现等式的“数据访问”(持久性)方面。我正在创建通用存储库(概念证明)并鼓励域对象所有者采用聚合根方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-16
    • 1970-01-01
    • 1970-01-01
    • 2021-04-14
    • 1970-01-01
    • 1970-01-01
    • 2017-12-22
    相关资源
    最近更新 更多