2014-12-03 1 views
0

У меня есть динамический построитель строк связей из-за того, что мне нужно использовать другую БД для каждого клиента.Как сделать строку соединения константой в модульном тесте?

Когда я тестирую это, я хочу высмеять построитель строк динамической связи, чтобы вернуть конкретный объект строки клиента. Проблема, с которой я столкнулся, - это C#, которая вызывает ошибку в строке подключения как константу.

private const string connectionString = 
@"metadata=res://Data/CustomerModel.csdl|res://Data/CustomerModel.ssdl| 
res://Data/CustomerModel.msl;provider=System.Data.SqlClient; 
provider connection string=/""Data Source=MyDB;Initial Catalog=MyCustomer; 
User ID=SomeUser;Password=SomePassword" 

Текущая ошибка:

An exception of type 'System.ArgumentException' occurred in EntityFramework.dll but  
was not handled in user code 

Additional information: Keyword not supported: 'initial catalog'. 

Я знаю, что это, как C# хранит строку подключения, что я не знаю, как это исправить. Я не хочу использовать службу построителя String Connection, которая у меня есть, потому что тогда мой тест будет опираться не только на эту «единицу». Я хотел бы подделать построитель строк соединения, чтобы вернуть эту строку соединения.

Любые предложения?

+0

То, что я имею в виду, значение 'некоторые "string' можно записать в виде C строк # '@" какой-то "" строка "или'" некоторые \ "строка"' (среди других). Вы показали нам, что вы считаете строкой C#, которую вы хотите, но, видимо, что-то не так. что такое * значение *, которое вы хотите? –

+0

@TimS. Я не уверен, что следую за тобой. Строка подключения, которую я опубликовал выше, - это то, что я хочу передать в EF, чтобы построить мне объект контекста. – Robert

ответ

1

Опция должна была бы использовать EntityConnectionStringBuilder и строить ее вручную.

http://msdn.microsoft.com/en-us/library/vstudio/bb738533(v=vs.100).aspx

+0

. Это просто порождает ошибку раньше в построенной строке подключения: Ключевое слово не поддерживается: «источник данных». Я предполагаю, что мне придется вручную построить строку соединения в методе. – Robert

+0

Я удалил часть ответа, пытающегося исправить строку подключения. Кажется, что строки подключения EF обрабатываются по-разному, если из файла конфигурации, чем передача строки. – Khan

Смежные вопросы