2011-05-17 21 views
5

Estoy tratando de crear una aplicación con Entity Framework y algunos DataSets antiguos pero solo tengo una cadena de conexión dinámica que usa entidad y necesito eliminar metadatos en tiempo de ejecución para crear una cadena de conexión a mi base de datos. Alguien sabe una forma de eliminar todos los metadatos de conexión Entity FrameworkExpresión regular para eliminar metadatos

tengo este

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;[email protected];MultipleActiveResultSets=True" 

y necesitan sólo esto:

Data Source=(local);Initial Catalog=MyDB;Persist Security Info=True;User ID=sa;[email protected];MultipleActiveResultSets=True 

Respuesta

9

Usted puede utilizar la clase 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;[email protected];MultipleActiveResultSets=True\""; 
EntityConnectionStringBuilder builder = new EntityConnectionStringBuilder(connectionString); 
builder.Metadata = null; 
connectionString = builder.ConnectionString; 
+0

Muy agradable, es más fácil. Me salvaste el día;) – pedrofernandes

+0

¡Me ayudó mucho! Mucho más simple que tratar de escribir un Regex para extraer la información. También se utiliza como @pedrofernandes mencionado en su respuesta para usar 'builder.ProviderConnectionString' – LazyTarget

5

Una mejor propiedad para usar es builder.ProviderConnectionString en lugar de stripping th e Metadatos del constructor para obtener build.ConnectiongString.

Cuestiones relacionadas