2012-04-01 28 views
0

Ich habe eine Anwendung auf ASP.NET MVC 3 mit Entity Framework Code zuerst ausgeführt. In der Entwicklung habe ich eine SQL-Compact-Datenbank verwendet, aber nach dem Verschieben auf meinen virtuellen Server versuche ich SQL Express anzusprechen.Der angeforderte .Net Framework Data Provider konnte nicht gefunden werden. Es kann nicht installiert werden

Es gab anfangs Probleme mit einem Fehler "CREATE DATABASE im Master", den ich durch Extraktion des Modells aus der SQL-Compact-Datenbank in ein SQL-Skript und Ausführen auf dem Server zur Erstellung der DB verstand.

ich eine neue Verbindungszeichenfolge erstellt haben, an der SQL Express-Instanz zu verweisen, die das EF-Format verwendet:

<add name="LouiseClarkEntities" connectionString="metadata=res://*/Models.LouiseClark.csdl|res://*/Models.LouiseClark.ssdl|res://*/Models.LouiseClark.msl;provider=System.Data.EntityClient;provider connection string=&quot;Data Source=.\SQLEXPRESS; Initial Catalog=LouiseClark; User ID=<username>; Password=<password>&quot;" providerName="System.Data.EntityClient" /> 

Der Fehler, den ich immer bin jetzt, wenn auf eine Seite zu navigieren, die die DB verwendet, ist:

Unable to find the requested .Net Framework Data Provider. It may not be installed. 

ich habe Entity Framework installiert 4.1 auf dem Server, um zu versuchen und sehen, ob das Problem lösen würde, aber es schien nicht viel gutes zu tun.

Snippet aus dem Stack-Trace auf Fehlerseite:

[ArgumentException: Unable to find the requested .Net Framework Data Provider. It may not be installed.] 
    System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName) +1420567 
    System.Data.EntityClient.EntityConnection.GetFactory(String providerString) +35 

[ArgumentException: The specified store provider cannot be found in the configuration, or is not valid.] 

Jede mögliche Hilfe würde geschätzt werden, da dies mir jetzt Tage abgehört worden! ersten

Danke,

Chris

Antwort

0

die normale Verbindungszeichenfolge mit Code verwenden.

<add name="LouiseClarkEntities" connectionString="Data Source=.\SQLEXPRESS; Initial Catalog=LouiseClark; User ID=<username>; Password=<password>" providerName="System.Data.SqlClient" /> 
+0

Dank @Eranga aber jetzt die 'context.Database.CompatibleWithModel (false)' Aufruf in meinem benutzerdefinierten Initialisierer gibt false zurück. Ich habe die Metadatentabelle aus der Entwicklungsdatenbank auf den Server kopiert, und die Tabellen stimmen überein. – Chris

0

Auf dem zweiten Problem, und zum Teil die Ursache für die zu ersten ...

was du falsch gemacht hast ist which I got around by extracting the model from the SQL Compact database into an SQL script and executing that on the server to create the DB.

Sie sollten Migrationsskripts für diese Verwendung - und in PM-Konsole verwenden dann Update-Database -Script, um das auszustoßen, was Sie brauchen - dann stellen Sie das auf die Server-Datenbank bereit.

Problem ist, dass es CF gibt, hat seine eigene Tabelle und Daten, die ordnungsgemäß initialisiert werden müssen. Wenn das nicht passt, werden Sie mit so etwas enden.

Verwandte Themen