4.1 EF exception“, Le fournisseur n'a pas retourné un ProviderManifestToken chaîne”
Je suis en train de reproduire un exemple trouvé sur le site MSDN. Je suis à l'aide de ASP.NET et EF 4.1 (CTP?). J'ai utilisé NuGet pour installer le paquet EntityFramework.
J'obtiens cette erreur: The provider did not return a ProviderManifestToken string
...
et la base de données n'est jamais créé.
Voici ma chaîne de connexion:
<add name="HospitalContext"
connectionString=
"data source=.\SQLExpress;initial catalog=NewTestDB;integrated security=True;"
providerName="System.Data.SqlClient"/>
Voici mon code:
var pat = new Patient { Name = "Shane123132524356436435234" };
db.Patients.Add(pat);
var labResult = new LabResult { Result = "bad", Patient = pat };
int recordAffected = db.SaveChanges();
Voici mon contexte:
public class HospitalContext : DbContext
{
static HospitalContext()
{
Database.SetInitializer(new HostpitalContextInitializer());
}
public DbSet<Patient> Patients { get; set; }
public DbSet<LabResult> LabResults { get; set; }
}
public class HostpitalContextInitializer :
DropCreateDatabaseIfModelChanges<HospitalContext>
{
protected override void Seed(HospitalContext context)
{
context.Patients.Add(new Patient { Name = "Fred Peters" });
context.Patients.Add(new Patient { Name = "John Smith" });
context.Patients.Add(new Patient { Name = "Karen Fredricks" });
}
}
C'est un des correctifs de SQL 2008 système, avec visual studio 2010 SP1.
- Il semblerait, d'après l'ajout de [Touche] pour le Modèle, son passé de cette question. Je suis encore à une autre question, mais cela pourrait avoir résolu que.
- Aussi, il se pourrait que j'ai ajouté "Intégré security=true" à ma chaîne de connexion...
- Je vais avoir la même exception lorsque l'on travaille avec
SqlServerCe.Entity.dll
- Dans l'intérêt de choses qui peuvent évoquer cette exception - je passer 20 minutes à regarder le passé de la faute de frappe dans le nom de la chaîne de connexion qui doit correspondre au nom du contexte.
Vous devez vous connecter pour publier un commentaire.
J'ai été faire cette erreur et essayé quelques suggestions antérieures. Puis j'ai vérifié l'Exception Interne et remarqué que je recevais une simple SQL d'échec de la connexion pour l'utilisateur. Juste autre chose à vérifier.
Cela peut arriver parfois lorsque vous placez la chaîne de connexion dans l'application.config de la mauvaise projet dans Visual Studio.
Par exemple, j'ai eu ce problème en EF 4.1 (la version publiée) projet + Service de Données WCF projet et j'ai remarqué que je n'ai pas la chaîne de connexion spécifié dans le Projet de Data Services, où il a été utilisé.
J'ai eu la même erreur, et en fait c'était échec de la connexion pour le serveur spécifié. J'ai enlevé "Sécurité Intégrée" de l'attribut de la configuration de la chaîne de connexion et cela a fonctionné.
J'ai eu le même problème, et j'ai ajouter le code ci-dessous juste après l'exemple de mon contexte (onload par exemple)
J'ai eu un problème similaire avec le MvcMusicStore app. J'ai changé une ligne dans le site Web.config à partir de
"Instance=true" à "Instance=false". Il travaille parfois sans cette tweak mais je ne sais pas quelles sont les causes de la différence. La lecture de ce
http://msdn.microsoft.com/en-us/library/ms254504.aspx n'a pas vraiment aider.
Par certains raison de l'autorisation, l'EF ne peut pas créer de connexion de base de données.
J'avais connu le même problème tous les jours. Enfin j'avais essayé la solution suivante et il a travaillé:
a/Ouvrir IIS (je suis à l'aide d'IIS 7)
b/Ouvrir les paramètres avancés de appool le site web a l'aide (Ex: DefaultAppPool)
c/Regarder Modèle de Processus de groupe, le changement d'Identité de la valeur à "Localsystem"
Espère travailler avec vous.
Je viens d'avoir le même problème...
la solution qui a fonctionné pour moi a été:
exécutez le client outil de configuration réseau (type cliconfg dans Exécuter)
et assurez-vous que TCP/IP est activé..
J'ai finalement craqué après une légère wild goose chase en pensant que c'était dû à des autorisations.
Révélation: l'UTILISATION du générateur de profils SQL
(Note: j'ai récemment révisé à la baisse à partir de EF6 à EF5)
À l'aide du générateur de profils SQL j'ai rapidement trouvé la dernière SQL exécuté avant que la signalées échec:
Bien regarder que - quelque chose à faire avec les migrations. C'est en regardant dans
__MigrationHistory
table - dont je n'avais même pas réalisé qu'il avait créé (je l'avais déjà effacé les Migrations dans mon CSPROJ) et a laissé que les.Donc j'ai tirer vers le haut les lignes de la table et de voir qu'il est lié à un produit spécifique à la version (v6).
J'ai fait déclassé de EF6 (que je n'ai pas l'intention d'installer en premier lieu) à EF5 (qui est plus compatible avec des échafaudages) et que, lorsque les problèmes ont commencé.
Ma conjecture est que le
Model (<Binary data>)
colonne n'est pas rétro-compatible - d'où leThe provider did not return a ProviderManifest instance
erreur, puisqu'il a été incapable de le déchiffrer.Je n'avais rien à perdre et fait disparaître cette table complètement et a couru
Update-Database -Verbose
et puis, c'était à nouveau opérationnel.Si vous êtes dans un environnement ou qui sont déjà en production, alors l'anéantissement de ce tableau ne peut pas être la solution, mais ça m'a permis d'obtenir le droit de retour au travail.
Add-Migration
etUpdate-Database -Verbose -Force
. voici une référence de la commande de codage.abel.nu/2012/03/ef-migrations-commande-référenceDans l'aide de Visual Studio 11 Beta avec EF4.1 et ASP.NET MVC, j'ai presque tiré mes cheveux jusqu'à ce que j'ai trouvé
Pour résoudre mon problème, je suis allé dans Application_Start et changé
à
Database.DefaultConnectionFactory = new SqlConnectionFactory(@"Data Source=(localdb)\v11.0; Integrated Security=True; MultipleActiveResultSets=True");
a été ajoutée à maMain
forme, maintenant il fonctionne comme un charme! Je vous remercie beaucoup.Cette citation de CodePlex , cela a fonctionné avec moi (visual studio 2013 /MVC 5)
Une autre chose à considérer si vous êtes à l'aide de EF le Premier Code c'est qu'il n'a parfois pas de créer automatiquement la sauvegarde de la base de données de votre classe DbContext. La solution est d'ajouter votre propre chaîne de connexion, vous pouvez utiliser la chaîne de connexion qui peuvent être présents à la poignée de l'utilisateur/base de données d'enregistrement que le dos de la Simple Fournisseur d'appartenances, comme un modèle.
Enfin, vous aurez besoin d'ajouter un constructeur par défaut pour la classe DbContext vous avez créé:
Ici, le nom de la chaîne de connexion que vous avez entré dans votre site web.fichier de configuration est utilisé pour diriger le DbContext pour créer la base de données.
Très occasionnellement, j'ai eu à le créer manuellement la base de données (SQL Server Management Studio) qui l'a incité à travailler.
J'ai plusieurs projets dans une solution et a ajouté EF pour chaque projet d'un autre temps. Sur certaines machines il travaillait, et sur certains, il a échoué avec l'erreur susmentionnée. Il m'a fallu un certain temps à remarquer que certains de mes projet app.config eu ce:
C'est ok si vous utilisez LocalDb (nouveau "sql express" like), mais tout à fait tort si vous n'avez pas de serveur spécifique installé et utiliser un standard SQL.
Solution: Supprimer le code ci-dessus.
C'est parce que la connexion à SQL server a échoué.
Assurez-vous que le Compte d'Utilisateur sous lequel vous exécutez le processus d'accès à SQL Server.
Si vous avez généré le DbContext du parent thread (comme l'utilisation de l'Injection de dépendance) et puis si vous êtes usurpation de l'identité d'un autre utilisateur a alors cette erreur se produit. La solution serait de générer de la DbContext à l'intérieur du nouveau thread ou un nouveau contexte d'emprunt d'identité.
J'ai juste fermé toutes les instances de Visual Studio et rouvert ma solution.
Je ne sais pas ce qui s'est réellement passé, mais j'ai eu la même solution ouverte à partir de deux locaux différents espaces de travail (un de mes changements, l'un avec le inchangée référentiel de code source). Je travaille avec une postgres DB, Entity Framework 6, Visual Studio 2013 et ASP.NET MVC 5.
J'ai eu une erreur d'entity framework, mais aucune des réponses ci-dessus, fini le montage dans la solution qui a finalement fonctionné.
Mon EntityFramework le Premier Code de Modèles et de DataContext étaient dans un projet Séparé de mon WebAPI Projet Principal. Mon Projet de Entity Framework quelque part en bas de la ligne de codage a été défini comme projet de démarrage, et donc quand j'ai été le déroulement de la migration j'ai été faire“, Le fournisseur n'a pas retourné un ProviderManifestToken chaîne” ... problème de connexion.
S'avère que depuis la ConnectionString à la DB est situé dans le Web.fichier de config dans WebAPI projet Principal, que lorsque j'étais à l'exécution d'une migration de la chaîne de connexion n'a pas été récupérée. Par la mise en WebAPI projet comme mon startProject j'ai été en mesure de se connecter avec succès.