EF 4.1 code-first-connectionstring in der web.config

Bin ich ein bisschen ein Alptraum-Tag heute. Ich habe erfolgreich auf einem code-first-Entwicklung-lokal und alles hat sich schon gut mit meiner db gelöscht und neu erstellt als erforderlich, wenn sich das Modell ändert. Jedoch auf dem Versuch, um 'upgrade', das Projekt auf einen sqlserver2008 staging-server auf mydiscountasp.net meine Probleme begannen im ernst. Als die shared-hosting-Datenbanken, kann nicht gelöscht/neu erstellt von der Benutzer, nahm ich ein lokales backup und wieder auf den server. Einen Schritt näher.. ich kann die Datenbank, wenn ich log-in über den server-sqlserver-mgt studio und es sieht alles in Ordnung. Jedoch kann ich nicht scheinen, um herauszufinden, wie die Verbindung zu der Datenbank über das web.config. Ich hatte angefangen mit dem bescheidenen ado.net sysntax für die Verbindungszeichenfolge, die entlang der Linien von:

<add name="MyWebSiteContext" 
  connectionString="Server=esql2k123.discountasp.net;
  Database=SQL2008R2_123456_test;uid=SQL2008R2_123456_test_user;pwd=mypassword;" 
  providerName="System.Data.SqlClient"/>

diese funktionierte nicht und gab eine Fehlermeldung, dass das Schlüsselwort "server" nicht anerkannt wurde. nach viel googeln, es scheint, dass das Problem könnte auch damit zusammenhängen, das providerName="System.Data.SqlClient" Teil.

Also auf die Veränderung dieser zu providerName="System.Data.EntityClient" ich war gefüllt mit ein wenig Hoffnung. Ach, die gleiche Geschichte.

Geschnitten (sehr) lange Rede, kurzer Sinn, ich habe versucht, viele Permutationen (Mutationen wird die operative Wort !! :)) aber kann nicht scheinen, um Streik die richtige syntax Voraussetzung für die code-first-ef connectionstring Anforderung.

Hat jemand da draußen gegangen thro eine ähnliche hoop-Reifen vor kurzem und gefunden, die eine funktionierende Lösung??

Finger, Zehen und Augen xx würde..

[UPDATE] ich habe es geschafft, mein connection string zu (FAST) Arbeit durch eine Formatierung wie folgt:

<add name="GBCWebSiteContext" 
connectionString="Data Source=esql2k123.discountasp.net;Initial Catalog=SQL2008R2_123456_test;Persist Security Info=True;MultipleActiveResultSets=True;User ID=SQL2008R2_123456_test_user;Password=mypass" providerName="System.Data.SqlClient"/>

Ich bin jetzt in der Lage zu stoppen und Debuggen der controller-action, wie es führt eine linq wählen. ABER auf den Versuch zurück, die Zeilen, die ich jetzt bekomme, eine Ausnahme, die besagt: Einen trigger ein resultset zurückgegeben, und die server-option disallow results from triggers' ist wahr

So, was ist meine Letzte Stück des Puzzles, hier ist eine zusätzliche option, die in der connectionstring zu negieren dieses problem??

[UPDATE 2]
Hallellulah - ich habe Sie geknackt die Nuss. Da hatte ich remmed aus die Globale.asax Zeile:

Database.SetInitializer(new System.Data.Entity.DropCreateDatabaseIfModelChanges<MyWebSiteContext>());

Ich wusste nicht, dass ich brauchte, um einen null Referenz zu den Database.SetInitializer().

siehe da, die folgenden sortiert mein problem:

Database.SetInitializer<MyWebSiteContext>(null);

danke an alle für die verschiedenen Vorschläge, Sie haben mir geholfen, den Fokus auf das problem. So glücklich 🙂

  • Was gibt es in Ihrem lokalen connectionstring Aussehen? Wahrscheinlich können Sie machen eine leichte Modifikation zu, dass, bereitstellen, um die Inszenierung (ein später in die Produktionsumgebung) und es funktioniert wieder. EF braucht eine ganze Menge von Metadaten, die in der connectionstring, so würde ich nicht versuchen, es zu schreiben, von Grund auf von hand.
  • Tomas - der lokale connectionstring ef4.1 code-first-übereinkommen aufgrund connectionstring. d.h. nicht deklariert im web.config
  • In Ihrem SQL Server, können Sie dies ausführen? exec sp_configure 'show advanced options',1; RECONFIGURE; exec sp_configure 'disallow results from triggers',1; RECONFIGURE;
InformationsquelleAutor jim tollan | 2011-07-26
Schreibe einen Kommentar