#.net #entity #connection-string
#.net #сущность #строка подключения
Вопрос:
Я пытаюсь создать приложение с использованием некоторой Entity Framework и некоторых старых наборов данных, но у меня есть только динамическая строка подключения с использованием entity, и мне нужно удалить метаданные во время выполнения, чтобы создать строку подключения к моей базе данных. Кто-нибудь знает способ удалить все метаданные из подключения Entity Framework
У меня есть это
metadata=res://*/Models.SiteModel.csdl|res://*/Models.SiteModel.ssdl|res://*/Models.SiteModel.msl;provider=System.Data.SqlClient;provider connection string=amp;quot;Data Source=(local);Initial Catalog=MyDB;Persist Security Info=True;User ID=sa;Password=P@ssw0rd;MultipleActiveResultSets=Trueamp;quot;
и нужно только это:
Data Source=(local);Initial Catalog=MyDB;Persist Security Info=True;User ID=sa;Password=P@ssw0rd;MultipleActiveResultSets=True
Ответ №1:
Вы можете использовать EntityConnectionStringBuilder
класс:
string connectionString = "metadata=res://*/Models.SiteModel.csdl|res://*/Models.SiteModel.ssdl|res://*/Models.SiteModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=(local);Initial Catalog=MyDB;Persist Security Info=True;User ID=sa;Password=P@ssw0rd;MultipleActiveResultSets=True"";
EntityConnectionStringBuilder builder = new EntityConnectionStringBuilder(connectionString);
builder.Metadata = null;
connectionString = builder.ConnectionString;
Комментарии:
1. Очень приятно, это более простые способы. Ты спас мне день 😉
2. Мне очень помогло! Намного проще, чем пытаться написать регулярное выражение для извлечения информации. Также используется как @pedrofernandes, упомянутый в его ответе на использование
builder.ProviderConnectionString
Ответ №2:
Лучшее свойство для использования — это builder.ProviderConnectionString
вместо удаления метаданных из конструктора для получения build.ConnectiongString
.
Комментарии:
1. Да, и откуда берется эта переменная builder. Ваш ответ неполный.
Ответ №3:
Я знаю, что это старый пост, но он публикуется для других.
string connectionString;
connectionString = ConfigurationManager.ConnectionStrings["NameOfConnectionInApp.Config"].ConnectionString;
System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder entityConnectionStringBuilder = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder(connectionString);
System.Data.SqlClient.SqlConnectionStringBuilder sqlConnectionStringBuilder = new SqlConnectionStringBuilder(entityConnectionStringBuilder.ProviderConnectionString);
string databaseName = sqlConnectionStringBuilder.InitialCatalog;