2011-11-03 2 views
1

J'ai une base de données et une bibliothèque de classes C# qui sert de référentiel pour accéder aux objets de la base de données en utilisant Entity Framework. Lorsque j'essaie d'utiliser cet assemblage de référentiel dans d'autres projets, je suis en difficulté; Mon hypothèse de travail est que celui-ci en raison de la chaîne de connexion que je reçois l'erreur suivante:C# ConnectionString pour la bibliothèque de classes du référentiel EF

The specified named connection is either not found in the configuration, not intended to be used with the EntityClient provider, or not valid.

J'ai ajouté un fichier App1.config au projet et a ajouté la même chaîne de connexion que j'avais utilisé avec succès lors de la création la base de données:

<add name="EDSEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SQLite;provider connection string='data source=&quot;C:\Documents and Settings\hmay\My Documents\My Projects\Timetabler\DataSets\EDS.db&quot;;foreign keys=true'" providerName="System.Data.EntityClient" /> 

.... mais cela ne fonctionne pas. Je ne comprends pas très bien la chaîne de connexion et je me demandais s'il y avait quelque chose d'autre que je pourrais avoir besoin de modifier?

Cordialement

+0

http://www.connectionstrings.com/ est une référence que j'ai utilisée pour ce genre de chose avant. Voyez s'ils ont quelque chose d'utile pour vous. –

Répondre

3

Ajout app1.config ne rien faire. App.config et web.config sont des fichiers spécialement nommés et ils doivent être nommés exactement comme ça. Cependant, si vous utilisez votre bibliothèque dans plusieurs applications, je la refactoriserais.

Modifiez la classe DbContext pour avoir un seul constructeur qui prend une chaîne de connexion et chargez la responsabilité de la création de la chaîne de connexion dans l'application plutôt que dans la bibliothèque. Il n'est pas bon d'avoir une bibliothèque de classes qui s'attend à ce que votre application ait une entrée nommée particulière dans la section des chaînes de connexion de sa config.

+0

C'était le nom du fichier de configuration .. Cheers –

0

essayer de limiter les références de métadonnées à metadata=res://*

Questions connexes