Регулярное выражение для удаления метаданных - PullRequest
6 голосов
/ 17 мая 2011

Я пытаюсь создать приложение с использованием некоторой Entity Framework и некоторых старых DataSets, но у меня есть только динамическая строка соединения, использующая сущность, и мне нужно удалить метаданные во время выполнения, чтобы создать строку соединения с моей базой данных. Любой знает способ удалить все метаданные из Entity Framework Connection

У меня есть

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"

и нужно только это:

Data Source=(local);Initial Catalog=MyDB;Persist Security Info=True;User ID=sa;Password=P@ssw0rd;MultipleActiveResultSets=True

Ответы [ 2 ]

9 голосов
/ 17 мая 2011

Вы можете использовать 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;
5 голосов
/ 17 мая 2011

Лучшее свойство для использования - builder.ProviderConnectionString вместо того, чтобы извлекать метаданные из компоновщика, чтобы получить build.ConnectiongString.

...