У нас есть веб-приложение ASP.NET MVC, которое работает с Entity Framework. До сих пор все работает довольно хорошо, но теперь мне нужно реализовать функцию, которая позволяет импортировать огромные объемы данных в таблицу архивов.Как получить DataSource, UserID и пароль из Entity ConnectionString?
Данные, необходимые для импорта, представлены в виде файла базы данных SQL Server Compact, который я могу загрузить и обработать через веб-приложение. Моя первая попытка состояла в том, чтобы читать строки и создавать новые объекты для каждой строки, которые я добавил в список этого типа. Затем я использовал метод EF AddRange()
для добавления строк в базу данных.
Этот метод не работает из-за проблем с памятью и производительностью даже при небольших импортных файлах. Поэтому я немного поработал в Google и решил пойти на сборку SQL вставки (и тем самым обход EF), что было четко указано как наиболее эффективный способ.
В моей web.config
у меня есть строка подключения EF, которая также содержит данные, необходимые для доступа к базе данных. Поскольку мне нужно работать с SqlConnection
, мне нужен рабочий SQLProvider ConnectionString. Строка соединения EF не работает в этом случае из-за дополнительных записей, с которыми SqlConnection не работает (что приводит к ошибкам типа «неподдерживаемое ключевое слово: метаданные» и т. Д.).
Так что я хочу построить новую строку соединения SqlConnection с SqlConnectionStringBuilder
. Мне нужны только три параметра: UserID, Password и DataSource. Все они присутствуют в строке подключения EF.
Как я могу получить их из моего существующего соединения EF? Я определенно не хочу уродливого разбора/регулярного выражения, но я не мог понять, как получить эти значения.
Я знаю, что это не является частью вопроса, но почему бы не просто добавить new connectionstring в web.config вместо того, чтобы пытаться использовать существующий для создания нового? – Mackan
Вы правы, я мог бы просто добавить еще одну строку соединения, но поскольку требуемые данные уже присутствуют, я бы хотел использовать существующую. – Robert