J'ai cette petite méthode qui devrait créer un objet personnalisé appelé DataSource:En utilisant SqlConnectionStringBuilder pour chaîne de connexion EF throws Exception
private static DataSource BuildDataSourceFromString(string connectionString)
{
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(connectionString);
DataSource dbConnection = new DataSource()
{
Source = builder.DataSource,
Catalog = builder.InitialCatalog
};
return dbConnection;
}
La principale raison pour laquelle j'utilise cette classe (SqlConnectionStringBuilder
) est de saisir confortablement le catalogue et les données la source.
Quand je passe une chaîne de connexion Entity Framework pour (et initialiser le SqlConnectionStringBuilder
), je reçois l'exception suivante:
mots-clés non pris en charge: 'métadonnées'
Je pourrais commencer à analyser la chaîne à vérifier et à différencier entre la chaîne de connexion Entity Framework et la chaîne classique, mais je veux vraiment quelque chose d'élégant pour les traiter sans que le code doive en "savoir" (car j'en réitère plusieurs types dans mon projet).
Voici l'exemple de chaîne de connexion qui échoue:
<add name="someconnectionstring"
connectionString="metadata=res://*/DB.SomeDataModel.csdl|res://*/DB.SomeDataModel.ssdl|res://*/DB.SomeDataModel.msl;provider=System.Data.SqlClient;provider connection string="data source=some-data-source;initial catalog=SomeCatalog;integrated security=True;MultipleActiveResultSets=True;MultiSubnetFailover=True;App=EntityFramework""
providerName="System.Data.EntityClient" />
Cette erreur ne se produit pas dans les chaînes de connexion classiques comme:
<connectionStrings>
<add name="SomeData"
connectionString="Server=Some-Server;Database=SomeCatalog;Integrated Security=SSPI;"
providerName="System.Data.sqlclient" />
</connectionStrings>
Suggestions pour quelque chose d'élégant pour saisir les deux types de chaînes de connexion? Y at-il autre chose que SqlConnectionStringBuilder
que je peux utiliser? Peut-être que je devrais tronquer une chaîne redondante et la retirer de la chaîne de connexion Entity Framework avant de la construire?
Merci d'avance.
Avez-vous essayé la classe 'EntityConnectionStringBuilder'? https://msdn.microsoft.com/en-us/library/system.data.entityclient.entityconnectionstringbuilder(v=vs.110).aspx –