У вас есть много вариантов - как вы уже упоминали - но для истинного модульного тестирования вы всегда хотите максимально приблизиться к тестируемому блоку, чтобы избежать проблем интеграции в ваших тестах. Для объектов базы данных это означает использование проектов модульного тестирования базы данных Visual Studio и написание SQL для модульного тестирования объектов базы данных, или использование какой-либо сторонней среды тестирования на основе SQL, такой как DBUnit.
В некоторых случаях вы можете захотеть использовать Linq-to-SQL для выполнения некоторых модульных тестов базы данных более лаконично / легко, чем это можно сделать в SQL, но этого следует избегать, если это абсолютно не необходимо для истинного модульного тестирования; В Linq-to-SQL (и любом другом пользовательском коде) появляются проблемы интеграции и дополнительные уровни, поэтому, если вы столкнетесь с ошибкой, вам сначала нужно убедиться, что это действительно ошибка в вашей базе данных, а не в вашей Linq-to-error. Подключение к базе данных SQL, код C # (например) и т. Д.