EntityTypeConfiguration - 测试数据库映射的干净方法是什么?

时间:2011-06-23 16:12:32

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

背景

我公司目前的结构是使用Plinqo / Linq to Sql来创建“数据访问对象”,然后使用一组自定义的CodeSmith模板来构建“业务对象”。简而言之,这两组对象紧密耦合,并且使用Linq to SQL会导致非常难看的变通方法。

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

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

问题:

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

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

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

谢谢!

1 个答案:

答案 0 :(得分:1)

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

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