88 votes

EF 4.1 exception "Le fournisseur n'a pas renvoyé de chaîne ProviderManifestToken".

J'essaie de reproduire un exemple trouvé sur MSDN. J'utilise ASP.NET et EF 4.1 (CTP ?). J'ai utilisé NuGet pour installer le package EntityFramework.

J'obtiens cette erreur : The provider did not return a ProviderManifestToken string ... et la base de données n'est jamais créée.

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" });
    }
}

Il s'agit d'un système SQL 2008 entièrement corrigé, avec VS 2010 SP1.

184voto

junken Points 1528

Je recevais cette erreur et j'ai essayé quelques-unes des suggestions précédentes. J'ai ensuite vérifié l'exception interne et j'ai remarqué que j'obtenais un simple échec de connexion SQL pour l'utilisateur. C'est une autre chose à vérifier.

8voto

Preet Sangha Points 39414

Cela peut se produire parfois lorsque vous placez la chaîne de connexion dans l'app.config du mauvais projet dans Visual Studio.

Par exemple, j'ai eu ce problème dans le projet EF 4.1 (la version publiée) + le projet WCF Data Service et j'ai remarqué que je n'avais pas de chaîne de connexion spécifiée dans le projet Data Services, où il était utilisé.

5voto

Rakesh Singh Points 103

J'avais la même erreur, et en fait c'était un échec de connexion pour le serveur spécifié. J'ai supprimé l'attribut "Integrated Security" de la chaîne de connexion de la configuration et cela a fonctionné.

4voto

toto123 Points 31

J'ai eu le même problème, et j'ai ajouté le code ci-dessous juste après l'instance de mon contexte (onload par exemple)

context.Database.Connection.ConnectionString = @"Data Source=.\SQLExpress;Initial Catalog=Test;Integrated Security=True";

4voto

xuvion Points 41

J'ai eu un problème similaire avec l'application MvcMusicStore. J'ai changé une ligne dans le Web.config de "Instance=true" à "Instance=false". Cela fonctionne parfois sans cette modification, mais je ne sais pas ce qui fait la différence. En lisant ceci http://msdn.microsoft.com/en-us/library/ms254504.aspx n'a pas vraiment aidé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X