EntityTypeConfiguration - Что такое чистый метод для проверки сопоставления с базой данных? - PullRequest
3 голосов
/ 23 июня 2011

Справочная информация:

Текущая структура моей компании использует Plinqo / Linq to Sql для создания «объектов доступа к данным», а затем использует собственный набор шаблонов CodeSmith для создания «бизнес-объектов». Короче говоря, эти два набора объектов очень тесно связаны и, с Linq to SQL, приводят к довольно уродливым обходным путям.

Шаблоны Plinqo выполняют прямое отображение таблицы 1: 1 после создания dbml. Это приводит к некоторому удобству в том, что если база данных изменяется, возникает ошибка времени компиляции на стороне бизнес-объекта (или на стороне приложения).

Я медленно пытаюсь доказать преимущества EF 4.1 (Code First) для сопоставления с существующей схемой, но эта «безопасность типов» при генерации кода стала большой проблемой в глазах ключевых заинтересованных сторон.

Проблема:

Итак, в Entity Framework 4.1 я сначала использую код для сопоставления с существующей базой данных.

  • Объекты домена Poco
  • EntityTypeConfiguration для каждого сопоставления

Что бы вы предложили в качестве тестового проекта для обеспечения правильности сопоставления со схемой? Должен ли я просто создать проект модульного тестирования и выполнить поиск каждого объекта или есть лучший способ?

Спасибо!

1 Ответ

1 голос
/ 23 июня 2011

Я использовал один базовый общий интеграционный тест, выполняющий операции CRUD, а производные тесты содержали только методы для создания сущности и проверки результатов каждой операции. Каждый тестовый метод выполняется в области транзакции, которая не была зафиксирована, поэтому тестовая база данных все еще находилась в исходном состоянии.

Это может быть улучшено в сценариях, когда вы начинаете использовать репозитории, и вместо того, чтобы работать с отдельными типами сущностей, вы начнете работать с агрегированными корнями. В таком случае создание правильных интеграционных тестов для манипулирования корнями агрегации очень удобно.

...