Я работаю над проектом, который использует Linq2SQL для доступа к данным. Проект состоит из приложения ASP.NET MVC и 8 библиотек классов. Большинство библиотек классов имеют свои собственные классы данных L2S.
В качестве части работы, которую я делаю, я пытаюсь заставить различные тестируемые компоненты вводить некоторую стабильность, чтобы очистить кодовую базу, в настоящее время интенсивно используются статические классы и методы, а контроллеры имеют статические DataContexts. которые используются во всем.
Как я могу реорганизовать использование L2S, чтобы я мог проверить действия контроллера?
Я ввел инъекцию зависимостей в приложение, чтобы отделить некоторые другие сервисы, но я не хочу, чтобы DataContext являлся свойством зависимостей контроллеров, потому что я хочу управлять созданием экземпляров DataContexts и их DataLoadOptions.
Одна вещь, которую я попробовал, заключалась в том, чтобы воспользоваться преимуществами частичных классов, которые генерирует L2S, и добавить интерфейс к DataContexts, но я обнаружил, что абстракция направлена вверх, в приложение, а не в библиотеки классов. Это не было похоже на правильный способ делать вещи, и это было бы трудно поддерживать. Кто-нибудь имел какой-либо конкретный успех или неудачу с этим методом?