Frage

Ich habe eine asp.net-mvc Anwendung mit der Standard-Mitgliedschaft Datenbank. Ich bin Zugriff es von ADO.NET Entity Framework.

Jetzt will ich es IIS bewegen, aber einige Probleme auftauchten. Ich hatte SQL Server Management Studio, Erstellen neuer DB, Import dort alle Daten aus der vorherigen MDF-Datei zu installieren. Nur noch Sache (so weit ich weiß, ein) zu tun, um Verbindungszeichenfolge zu ändern ist. Allerdings bin ich nicht wirklich mit erlebt und halten das Schlüsselwort nicht unterstützt immer: ‚Datenquelle‘. Ausnahme. Hier ist meine Verbindungszeichenfolge:

<add name="ASPNETDBEntities" 
     connectionString="Data Source=MONTGOMERY-DEV\SQLEXPRESS;Initial Catalog=ASPNETDB;Integrated Security=True;" 
     providerName="System.Data.EntityClient" />

Alle Ideen, was falsch ist?

War es hilfreich?

Lösung

Was haben Sie eine gültige ADO.NET Connection String - aber es ist nicht eine gültige Entity Framework Verbindungszeichenfolge.

Die EF-Verbindungszeichenfolge wie folgt aussehen würde:

<connectionStrings> 
  <add name="NorthwindEntities" connectionString=
     "metadata=.\Northwind.csdl|.\Northwind.ssdl|.\Northwind.msl;
      provider=System.Data.SqlClient;
      provider connection string=&quot;Data Source=SERVER\SQL2000;Initial Catalog=Northwind;Integrated Security=True;MultipleActiveResultSets=False&quot;" 
      providerName="System.Data.EntityClient" /> 
</connectionStrings>

Sie verpassen all metadata= und providerName= Elemente in Ihrer EF-Verbindungszeichenfolge ...... Sie grundsätzlich nur haben, was im provider connection string Teil enthalten sind.

die EDMX-Designer sollten Sie eine gültige EF-Verbindungszeichenfolge erstellen, in web.config oder app.config.

Marc

UPDATE: OK, ich verstehe, was Sie zu tun versuchen: Sie brauchen eine zweite „ADO.NET“ Verbindungszeichenfolge nur für ASP.NET Benutzer / Mitglieder-Datenbank. Ihr String ist in Ordnung, aber die provider ist falsch - es hätte „System.Data.SqlClient“ sein - diese Verbindung nicht Entity Framework verwenden - nicht die „EntityClient“ für sie dann angeben

<add name="ASPNETMembership" 
     connectionString="Data Source=MONTGOMERY-DEV\SQLEXPRESS;Initial Catalog=ASPNETDB;Integrated Security=True;" 
     providerName="System.Data.SqlClient" />

Wenn Sie providerName=System.Data.EntityClient angeben ==> Entity Framework Verbindungszeichenfolge (mit Metadaten = und alles).

Wenn Sie benötigen, und geben Sie providerName=System.Data.SqlClient ==> gerade ADO.NET SQL Server-Verbindungszeichenfolge ohne alle EF Ergänzungen

Andere Tipps

Dieses Problem kann auftreten, wenn Sie Ihre web.config (oder app.config) Verbindungszeichenfolgen durch den Index Referenz ...

var con = ConfigurationManager.ConnectionStrings[0].ConnectionString;

Die Null-basierte Verbindung String ist nicht immer die in Ihrer Konfigurationsdatei, wie es erbt andere standardmäßig von weiter oben auf den Stapel .

Die empfohlenen Ansätze sind Ihre Verbindung zugreifen namentlich ...

var con = ConfigurationManager.ConnectionStrings["MyConnection"].ConnectionString;

oder das connnectionStrings Element in Ihrer Konfigurationsdatei löschen ersten ...

<connectionStrings>
    <clear/>
    <add name="MyConnection" connectionString="...

Ich war immer das gleiche Problem.
aber dieser Code funktioniert gut versuchen Sie es.

<add name="MyCon" connectionString="Server=****;initial catalog=PortalDb;user id=**;password=**;MultipleActiveResultSets=True;" providerName="System.Data.SqlClient" />

hatte ich dieses Problem, wenn ich mit Entity Framework gestartet, es geschah, als ich nicht die alte SQL-Server-Verbindung zu EntityFramework Verbindung geändert habe.

Lösung: in der Datei, in der Verbindung durch web.config-Datei vorgenommen wird "add name =" Entities "Connection = XYZ", stellen Sie sicher auf die richtige Verbindung beziehen, in meinem Fall hatte ich dies tun

        public static string MyEntityFrameworkConnection
    {
        get
        {
             return ConfigurationManager.ConnectionStrings["Entities"].ConnectionString;
        }

    }

Anruf MyEntityFrameworkConnection, wenn Verbindung müssen festgelegt werden.

private string strConnection= Library.DataAccessLayer.DBfile.AdoSomething.MyEntityFrameworkConnection;

Anmerkung: die Verbindung in web.config-Datei automatisch generiert, wenn Entity-Modell zu der Lösung.

Ich weiß, dass dies eine alte Post, aber ich habe den gleichen Fehler in letzter Zeit so für das, was es wert ist, hier ist eine andere Lösung:

Dies ist normalerweise ein Verbindungszeichenfolge Fehler, bitte das Format der Verbindungszeichenfolge überprüfen, können Sie die oben genannten Vorschläge nachschlagen ‚Entity Framework Connectionstring‘ oder folgen.

Doch in meinem Fall meine Verbindungszeichenfolge war in Ordnung und der Fehler wurde durch etwas ganz anderes, so ließ ich hoffe, das hilft jemand:

  1. Zuerst hatte ich einen EDMX Fehler : es gab eine neue Datenbanktabelle in der EDMX und die Tabelle noch nicht existierte in meiner Datenbank (Komische ist der Fehler der Fehler nicht sehr offensichtlich waren weil es nicht in meinem EDMX oder Ausgabefenster angezeigt wurde, stattdessen wurde es in Visual Studio in der ‚Fehlerliste‘ Fenster unter ‚Warnungen‘) versteckt. Ich beschloss, diesen Fehler durch die fehlende Tabelle meiner Datenbank hinzufügen. Aber ich war eigentlich sehr damit beschäftigt, eine gespeicherte Prozedur hinzufügen und noch immer die ‚Datenquelle‘ Fehler so siehe unten, wie ich es gelöst:

  2. Gespeicherte Prozedur Fehler : Ich habe versucht, eine gespeicherte Prozedur hinzufügen und jedes Mal habe ich es über die EDMX Design Fenster, das ich eine ‚Datenquelle‘ eine Fehlermeldung anzeigt. Die Lösung war die gespeicherte Prozedur als leer hinzufügen (ich hielt die gespeicherte proc Name und Erklärung, sondern den Inhalt der gespeicherten proc gelöscht und ersetzt es mit ‚auswählen 1‘ und erneut versucht es auf die EDMX hinzufügen). Es funktionierte! Vermutlich hat EF nicht etwas in meiner gespeicherten proc mag. Sobald ich die proc EF hinzugefügt hatte, war ich dann in der Lage, den Inhalt des proc auf meiner Datenbank zu aktualisieren, was ich wollte, es sein, und es funktioniert, ‚Datenquelle‘ Fehler behoben.

Seltsamkeit

ich die gleichen Fehler, dann wie unten meine Verbindungszeichenfolge aktualisiert,

<add name="EmployeeContext" connectionString="data source=*****;initial catalog=EmployeeDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />

Versuchen Sie, dies wird Ihr Problem lösen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top