Я просмотрел шаблон репозитория и узнал некоторые идеи, которые я использовал в прошлом, которые заставили меня чувствовать себя хорошо.
Однако теперь я хотел бы написать приложение, которое бы использовало этот шаблон НО Я ХОТЕЛ БЫ, ЧТО КЛАССЫ СУЩЕСТВ ДЕКОПИЛИРОВАНЫ от поставщика репозитория.
Я бы создал несколько сборок:
- сборка «Интерфейсы», в которой будут размещаться общие интерфейсы, включая интерфейс IRepository
- сборка «Сущности», в которой будут размещаться классы сущностей, такие как Продукт, Пользователь, Заказ и так далее. На эту сборку будет ссылаться сборка «Интерфейсы», поскольку некоторые методы будут возвращать такие типы или их массивы. Также на него будет ссылаться основная сборка приложения (например, веб-приложение).
- одна или несколько сборок / сборок поставщика репозитория. Каждый из них будет включать (по крайней мере) класс, реализующий интерфейс IRepository, и будет работать с определенным хранилищем данных. Хранилища данных могут включать в себя SQL Server, сервер Oracle, MySQL, файлы XML, веб-службы / службы WCF и так далее.
Изучение LINQ to SQL, которое выглядит очень продуктивным с точки зрения времени, затраченного на реализацию, кажется мне удачным, пока я не обнаружу глубокую зависимость между сгенерированными классами и классом CustomDataContext.
Как я могу использовать LINQ to SQL в таком сценарии?