Прежде всего, выберите стратегию кэширования datacontext. Используйте DataContextThreadCache, если вы работаете в winforms, где контекст кэшируется в контексте запущенного потока. Используйте DataContextWebCache, если вы работаете с веб-приложениями, где контекст кэшируется в HTTP-кэше времени выполнения.
Чтобы зарегистрировать ваш текст данных, посмотрите DataContextProvider.RegisterDataContext и его перегрузки. Вот пример:
DataContextProvider.RegisterDataContext<YourDataContextType, YourCacheStrategyType>(contextKey, contextConnectionString)
contextKey : это ключ, который вы будете использовать для извлечения контекста данных.
contextConnectionString : строка подключения для вашего контекста данных.
В этом вызове будет использоваться тип DataContext, который вы указали для создания его нового экземпляра. Затем он будет кешировать его с использованием определенной вами стратегии кеширования. Это, вероятно, следует вызывать где-то на этапе инициализации вашего приложения. Затем ваш репозиторий может использовать GetDataContext, как описано в этом сообщении в блоге, для получения экземпляра контекста.