DataContextProvider - PullRequest
       7

DataContextProvider

0 голосов
/ 31 октября 2009

Исходя из приведенного здесь примера ...

http://ericswann.org/blog/archive/2009/04/06/linq-to-sql-datacontext-provider-revisited.aspx

Я пытаюсь использовать текст данных между MembershipProvider и RoleProvider.

Например, когда я вызываю Membership.GetUser (XXXXXX) в RoleProvider, я получаю сообщение об ошибке, потому что он извлекает элемент из одного текстового контекста и пытается использовать его (отсюда и необходимость в хранилище)

Но я ... действительно глуп, и это довольно продвинутые вещи. Видя, как я не могу «инстанцировать» Провайдеров, есть ли у кого-нибудь идеи, как мне использовать это?

1 Ответ

1 голос
/ 31 октября 2009

Прежде всего, выберите стратегию кэширования datacontext. Используйте DataContextThreadCache, если вы работаете в winforms, где контекст кэшируется в контексте запущенного потока. Используйте DataContextWebCache, если вы работаете с веб-приложениями, где контекст кэшируется в HTTP-кэше времени выполнения.

Чтобы зарегистрировать ваш текст данных, посмотрите DataContextProvider.RegisterDataContext и его перегрузки. Вот пример:

DataContextProvider.RegisterDataContext<YourDataContextType, YourCacheStrategyType>(contextKey, contextConnectionString)

contextKey : это ключ, который вы будете использовать для извлечения контекста данных.

contextConnectionString : строка подключения для вашего контекста данных.

В этом вызове будет использоваться тип DataContext, который вы указали для создания его нового экземпляра. Затем он будет кешировать его с использованием определенной вами стратегии кеширования. Это, вероятно, следует вызывать где-то на этапе инициализации вашего приложения. Затем ваш репозиторий может использовать GetDataContext, как описано в этом сообщении в блоге, для получения экземпляра контекста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...