2 Stimmen

MySql und Entity Framework geben zufällig Schema angegeben ist nicht gültig Fehler

Ich verwende Entity Framework, um auf meine MySQL-Datenbank zuzugreifen. Das Modell wurde mit EDMGEN2 generiert und alles funktioniert hervorragend. Ich kann alle meine Linq-to-Entity-Abfrage Güte tun...

...bis eine unbestimmte Zeit vergeht und ich die Fehlermeldung "The ProviderManifestToken '5' is different from '5.1' that was encountered earlier" erhalte. Warum wird eine "5" gefunden, wenn ich nur "5.1" angegeben habe?!

Die einzige Möglichkeit, den Fehler zu beheben, ist das erneute Hochladen der edmx-Datei (die überhaupt nicht geändert wurde), wobei die vorherige Datei überschrieben wird. An diesem Punkt wird die Anwendung fröhlich vor sich hin tuckern und den Benutzern Daten liefern, bis BAM der Fehler tritt vielleicht ein paar Stunden später auf, manchmal auch erst nach Tagen, und ich muss mich wieder auf die Suche machen.

Ich habe versucht, die ProviderManifestToken="5.1" zu "MySQL", "6", "5" und die gleiche Situation auftreten: funktioniert für eine Weile dann der Fehler. Als Bonus habe ich nur diese EINE edmx-Datei in der vb.net-Webforms-Anwendung so was ist es immer verwirrt durch?

die ersten Zeilen meiner edmx-Datei sehen wie folgt aus:

<edmx:Edmx Version="1.0" xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx">
<edmx:Runtime>
<edmx:StorageModels>
<Schema Namespace="v2Model.Store" Alias="Self" Provider="MySql.Data.MySqlClient" ProviderManifestToken="5.1" xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" xmlns="http://schemas.microsoft.com/ado/2006/04/edm/ssdl">
  <EntityContainer Name="v2ModelStoreContainer">.....

und meine Verbindungszeichenfolge in web.config sieht wie folgt aus:

<add name="v2Entities" connectionString="metadata=res://*;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=localhost;database=v2;uid=username;pwd=password&quot;" providerName="System.Data.EntityClient" />

Dieses Problem tritt nun schon seit einem Monat auf, und ich kann beim besten Willen nicht herausfinden, woher das Problem kommt! Jeder Vorschlag wird geschätzt werden

Die Einrichtung ist wie folgt:

Windows Server 2003 MySQL v 5.1.38 (auch mit 5.1.36 ausprobiert) Connector/NET 6.1.1.0 (auch mit 6.0.4.0 ausprobiert)

Der Fehler ist folgendermaßen:

Das angegebene Schema ist nicht gültig. Fehler: MySql.Data.Entity.Properties.SchemaDefinition-5.1.ssdl(4,9) : Fehler 0169: Alle SSDL-Artefakte müssen auf denselben Provider abzielen. Der ProviderManifestToken '5' unterscheidet sich von '5.1', der zuvor gefunden wurde.

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(4,9) : Fehler 0169: Alle SSDL-Artefakte müssen auf denselben Provider abzielen. Der ProviderManifestToken '5' unterscheidet sich von '5.1', der zuvor angetroffen wurde.

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(7,4) : Fehler 0019: Der Name des EntityContainers muss eindeutig sein. Es ist bereits ein EntityContainer mit dem Namen 'Schema' definiert.

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(336,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.Table' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(348,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.TableColumn' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(374,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.View' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(386,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.ViewColumn' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(412,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.Function' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(437,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.Procedure' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(447,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.Parameter' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(471,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.Constraint' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(483,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.CheckConstraint' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(491,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.ConstraintColumn' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(500,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.ForeignKeyConstraint' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(509,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.ForeignKey' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(520,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.ViewConstraint' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(535,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.TableTableConstraint' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(548,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.ConstraintConstraintColumn' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(561,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.ConstraintForeignKey' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(574,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.FromForeignKeyColumn' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(587,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.ToForeignKeyColumn' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(600,4) : error 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.TableTableColumn' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(613,4) : error 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.ViewViewColumn' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(626,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.FunctionFunctionParameter' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(639,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.ProcedureProcedureParameter' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(652,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.ViewViewConstraint' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(665,4) : error 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.ViewConstraintConstraintColumn' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(678,4) : error 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.ViewConstraintForeignKey' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(691,4) : error 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.FromForeignKeyViewColumn' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(704,4) : error 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.ToForeignKeyViewColumn' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(4,9) : Fehler 0169: Alle SSDL-Artefakte müssen auf denselben Provider abzielen. Der ProviderManifestToken '5' unterscheidet sich von '5.1', der zuvor angetroffen wurde.

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(7,4) : Fehler 0019: Der Name des EntityContainers muss eindeutig sein. Es ist bereits ein EntityContainer mit dem Namen 'Schema' definiert.

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(391,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.Table' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(403,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.TableColumn' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(429,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.View' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(441,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.ViewColumn' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(467,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.Function' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(492,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.Procedure' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(502,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.Parameter' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(526,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.Constraint' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(538,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.CheckConstraint' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(546,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.ConstraintColumn' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(555,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.ForeignKeyConstraint' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(564,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.ForeignKey' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(575,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.ViewConstraint' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(590,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.TableTableConstraint' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(603,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.ConstraintConstraintColumn' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(616,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.ConstraintForeignKey' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(629,4) : error 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.FromForeignKeyColumn' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(642,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.ToForeignKeyColumn' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(655,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.TableTableColumn' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(668,4) : error 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.ViewViewColumn' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(681,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.FunctionFunctionParameter' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(694,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.ProcedureProcedureParameter' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(707,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.ViewViewConstraint' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(720,4) : Fehler 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.ViewConstraintConstraintColumn' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(733,4) : error 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.ViewConstraintForeignKey' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(746,4) : error 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.FromForeignKeyViewColumn' wurde bereits definiert.

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(759,4) : error 0019: Jeder Typname in einem Schema muss eindeutig sein. Der Typname 'MySqlClient.ToForeignKeyViewColumn' wurde bereits definiert.

3voto

InnerSphere Punkte 61

Ich bin mir immer noch nicht sicher, was die genaue Ursache ist, aber das Folgende scheint die zufälligen Abstürze zu beheben:

Ändern der

metadata=res://*;

Zum eigentlichen Namensraum der EDMX-Datei scheint zu funktionieren:

metadata=res://MyApplication.Entities;

Die problembehebende Verbindungszeichenfolge sieht jetzt wie folgt aus:

<add name="v2Entities" connectionString="metadata=res://MyApplication.Entities;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=localhost;database=v2;uid=username;pwd=password&quot;" providerName="System.Data.EntityClient"/>

1voto

Scott N. Punkte 11

Die Änderung der Verbindungszeichenfolge, um den Projekt-/EDMX-Namensraum einzuschließen, hat bei mir funktioniert. Aber ohne die ".Entities".

In meinem Fall hatte ich eine Lösung mit mehreren Projekten, jedes mit einer EDMX-Datei, die auf eine andere MySQL-Datenbank verwies. Einzeln in Ordnung, aber wenn sie zusammen ausgeführt werden, wenn die Prüfung erhalten die oben genannten Fehler.

1voto

JoeC Punkte 11

OK, Leute, ich hatte dieses Problem plötzlich mit MySql Connector 6.2.2, nachdem ich monatelang ohne Probleme das Entity Framework damit verwendet hatte.

Ich habe meine Schritte zurückverfolgt, ich habe 2 Dinge getan, ich weiß nicht, was es vermasselt hat, aber es war eines davon, dann werde ich Ihnen sagen, was ich in Web.config um es zu reparieren.

Ich habe mit dem Ajax-Toolkit und einem anderen Diagramm-Toolkit innerhalb der App, an der ich arbeite, gespielt.

  1. Während ich in meiner Anwendung herumspielte, versuchte ich, ein Diagramm mit einer EntityDataSource zu verknüpfen, indem ich den Assistenten zum Erstellen neuer Datenquellen aus der Entwurfsansicht verwendete.

  2. Ich habe auch einige Datenverbindungen mit grundlegenden ado.net Verbindungen mit dem MySQL.Data Namespace. Meine App war solide typisierte Datensätze und Entity Framework im gesamten.

Möglicherweise wurde ein zusätzlicher Verweis auf den MySql-Connector/net apis hinzugefügt, der dies tut. Ich habe Windows 7 und habe meine Anwendung vor 4 Tagen gesichert, also habe ich sie wiederhergestellt und die beiden Webkonfigurationsdateien verglichen. Der Unterschied war, dass die App, die mir diesen Fehler gab, diese zusätzlichen Assembly-Referenzen am Ende des Abschnitts "Assemblies" hatte:

<add assembly="MySql.Data.Entity, Version=6.2.2.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D" />
    <add assembly="MySql.Web, Version=6.2.2.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D" />

Ich habe diese entfernt, alles was Sie von MySql brauchen ist :

<add assembly="MySql.Data, Version=6.2.2.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D" />

Ich hoffe, dass dies das Problem von jemandem lösen wird!

0voto

James Wilkins Punkte 6123

Bei manchen Leuten leeren Sie bitte Ihren Müllordner und versuchen Sie es erneut. Bei mir trat dieser Fehler auf, als ich eine Server 2003-Site einrichtete. Ich hatte ein Projekt umbenannt, und die alte Assembly (.dll) war noch vorhanden. Da die Verbindungszeichenfolge mit "res://*;..." begann, wurden ALLE Assemblys (auch die nicht geladenen) nach der Ressource durchsucht und (offensichtlich) Duplikate gefunden.

0voto

Serkan Sağlam Punkte 1

Ich habe die Datei web.config wie folgt geändert und es hat funktioniert

 <add name="myConnection" providerName="MySql.Data.MySqlClient" connectionString="server=localhost;port=3306;userid=root;password=;database=testdb;persistsecurityinfo=True" />

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X