Модульное тестирование DAL - очень распространенная головная боль при разработке. По большей части, я предлагаю вам пропустить это.
Большинство ORM в наши дни предлагают какой-то язык запросов, будь то LINQ или HQL, или какой-то другой вариант. Поскольку для правильного модульного теста требуется, чтобы вы на самом деле не обращались к базе данных, вам нужно издеваться над ORM, и это самая большая боль в заднице, о которой вы только можете подумать. Это не стоит того, ИМО. В конечном итоге, вы в конечном итоге проверяете, что вы написали правильный код в своем коде; вы не получаете никакого значения регрессии и можете лучше выполнять свои задачи путем проверки кода.
Однако я не говорю, что вы не должны проверять использование DAL; только не пытайтесь юнит-тестирование. У вас все еще должен быть набор интеграционных и приемочных тестов для вашей программы / системы; пусть те, кто занимается тестированием вашего доступа к данным, вместо этого.