Wie Konfiguriere ich Entity framework class Library-Projekt
habe ich einen Klasse-Bibliothek-Projekt, die enthalten, die entity framework-Objekt, die verantwortlich für die common-data-access-layer für mein Projekt mehrere.nach dem hinzufügen der erzeugten dll-Datei meiner domain Projekt und verwenden entity-Objekt aus der Klasse-Bibliothek-Projekt, im, denen mit dem folgenden Problem.
Keine Verbindung Zeichenfolge mit dem Namen 'ABC' gefunden werden kann, in die Anwendung config-Datei.
ich habe den Metadaten Artefakt Verarbeitung Eigentum der edmx zu Einbetten in die Output Assembly
App.Config markup
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<connectionStrings>
<add name="ABC" connectionString="metadata=res://*/Entity.ABC.csdl|res://*/Entity.ABC.ssdl|res://*/Entity.ABC.msl;provider=System.Data.SqlClient;provider connection string="data source=(LocalDB)\v11.0;attachdbfilename=|DataDirectory|\ABC.mdf;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
</entityFramework>
</configuration>
- Und Entities-code sind wie folgt
public ABC_IntegrationEntities()
: base("name=ABC")
{
}
eine weitere Sache, ich bin Zugriff auf die Datenbank von datadirectiory "App_Data"
bin ich verweisen auf den blog von dotnetcurry.com.
http://www.dotnetcurry.com/showarticle.aspx?ID=617
Vielen Dank im Voraus!
- Um diese Frage zu beantworten müssten wir Ihre app.config-Datei die Inhalte als auch den Konstruktor für den Kontext der Klasse (Objekt-oder Db).
- Hallo rob habe ich aktualisiert meine Frage bitte haben Sie einen Blick.Dank
- Der connectionString in der Konfigurationsdatei, die derzeit den Namen "Gumu_IntegrationEntities" muss den Namen "ABC" statt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Basierend auf der link Sie gab, Sie wahrscheinlich verpassen diesem Teil.
Erklärung:
Beim erstellen einer Bibliothek und die Bibliothek verwiesen wird, die aus einem anderen Projekt, EF liest die config, die ist relativ zum start-up-Projekt. Sie können eine der folgenden.
base("name=ABC")
, das bedeutet, dass EF erwartet Sie eine Verbindungszeichenfolge der name in den start-up-Projekt config-DateiHabe ich gearbeitet, auf die Schaffung Klassenbibliothek realisiert, dass alle EF (Entity Framework) - Funktionalität und folgte dem Verfahren in http://www.dotnetcurry.com/showarticle.aspx?ID=617, aber trotzdem war es Fehler gegeben.
War das problem Versionskonflikt zwischen dem EF-framework und .Net-framework. Ich war mit .Net framework 5.0, aber EF-version war 6.0. Nach der Aktualisierung der neuesten version von .Net framework, alles begann gut. Stellen Sie immer sicher mit EF-und Dll-version + EF-und test-Projekt-Versionen sind immer die gleichen.
Ich auch heruntergeladen und installiert EFTools6.1.3ForVS2013, wenn das hilft niemandem. Andere Sache zu erinnern ist, Sie zu installieren, Entity Framework Nuget in alle Projekte, Referenzen EF-Dll, und kopieren connectionstring aus Dll config-Datei in test-Projekt config-Datei.
Hoffe, das hilft jemandem !!!
Danke,
Kopieren Sie Ihre SQL-Verbindungszeichenfolge aus der Bibliothek-Projekt config-Datei und fügen Sie es in das Haupt-Projekt config-Datei, die Ihr startup-Projekt. Die Lösung für Ihr Problem.
Kopieren Sie auch DbProviderFactories von Bibliothek-Projekt, um die wichtigsten Projekt-config-Datei.
Ändern Sie den Namen der Entität, die Verbindungszeichenfolge, die Sie in den Konstruktor von Ihrer Kontext-Klasse:
Stellen Sie sicher, dass Ihre Anwendung-Konfigurations-Datei Hinzugefügt, um die Montage, wo führen Sie Ihren code aus, ich.e
app.config
Sie PEweb.config
Ihrer websiteConfigurationManager.ConnectionStrings
Objekt für Einträge, wenn dein connection string ist nicht da, als du aktualisiert hast falsch.config
- Datei.