StructureMap и строка соединения LINQ to SQL - PullRequest
2 голосов
/ 09 марта 2010

В настоящее время я устанавливаю строку подключения для моего контекста данных linq to sql с помощью класса-оболочки, чтобы я мог передать строку подключения в сгенерированный конструктор DataContext:

    public class DB : GeneratedDataContext {
    public DB() : base(ConfigurationManager.ConnectionStrings["myconnectionstring"].ConnectionString) { }
}

Мои реализации репозитория LinqToSql затем напрямую работают с классом DB.

Я использую StructureMap и задаюсь вопросом, является ли это лучшим подходом для этого, т. Е. Должен ли я вместо этого взять параметр строки подключения в качестве конструктора в моем хранилище и установить этот аргумент в моем загрузчике загрузки StructureMap?

Спасибо, Бен

1 Ответ

3 голосов
/ 09 марта 2010

Краткий ответ на ваш вопрос: да, structmap должен обрабатывать конфигурацию вашего соединения с БД.

Я использую что-то вроде этого, чтобы зарегистрировать мой текст данных с помощью structmap

ForRequestedType<MyDataContext>()
    .CacheBy(StructureMap.Attributes.InstanceScope.Hybrid)
    .TheDefault.Is.ConstructedBy(
         () => 
         new MyDataContext(ConfigurationManager
                               .ConnectionStrings["MyConnectionString"]
                               .ConnectionString)
         );

Таким образом, вам также не понадобится обертка для вашего текста данных.

...