2

Entity Framework を使用して MySQL データベースにアクセスしています。モデルは EDMGEN2 を使用して生成され、すべてがうまく機能します。私はすべてのlinq-to-entityクエリの良さを実行できます...

...不確定な時間が経過し、「ProviderManifestToken '5' は以前に検出された '5.1' とは異なります」というエラーが表示されるまで。「5.1」しか指定していないのに、なぜ最初から「5」に遭遇するのですか?!!?

エラーを停止する唯一の方法は、edmx ファイル (まったく変更されていない) に再アップロードして、前のファイルを上書きすることです。その時点で、アプリケーションは喜んでデータをユーザーに提供し続けますが、 BAMでエラーが発生するのはおそらく数時間後、場合によっては数日後です。

ProviderManifestToken="5.1" を "MySQL"、"6"、"5" に変更しようとしましたが、同じ状況が発生します。しばらくするとエラーが発生します。おまけとして、vb.net webforms アプリケーションにこの edmx ファイルが 1 つしかないので、何が混乱しているのでしょうか?

私の edmx ファイルの最初の数行は次のようになります。

<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">.....

web.config の接続文字列は次のようになります。

<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" />

これは先月から続いており、私の人生の問題の原因を突き止めることはできません! どんな提案でも大歓迎です

セットアップは次のとおりです。

Windows Server 2003 MySQL v 5.1.38 (5.1.36 でも試した) Connector/NET 6.1.1.0 (6.0.4.0 でも試した)

エラーは次のとおりです。

指定されたスキーマは無効です。エラー: MySql.Data.Entity.Properties.SchemaDefinition-5.1.ssdl(4,9): エラー 0169: すべての SSDL アーティファクトは同じプロバイダーをターゲットにする必要があります。ProviderManifestToken '5' は、以前に検出された '5.1' とは異なります。

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(4,9): エラー 0169: すべての SSDL アーティファクトは同じプロバイダーをターゲットにする必要があります。ProviderManifestToken '5' は、以前に検出された '5.1' とは異なります。

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(7,4): エラー 0019: EntityContainer 名は一意である必要があります。「Schema」という名前の EntityContainer は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(336,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.Table' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(348,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.TableColumn' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(374,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.View' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(386,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.ViewColumn' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(412,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.Function' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(437,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.Procedure' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(447,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.Parameter' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(471,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.Constraint' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(483,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.CheckConstraint' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(491,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.ConstraintColumn' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(500,4) : エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.ForeignKeyConstraint' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(509,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.ForeignKey' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(520,4) : エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.ViewConstraint' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(535,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.TableTableConstraint' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(548,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.ConstraintConstraintColumn' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(561,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.ConstraintForeignKey' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(574,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.FromForeignKeyColumn' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(587,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.ToForeignKeyColumn' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(600,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.TableTableColumn' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(613,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.ViewViewColumn' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(626,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.FunctionFunctionParameter' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(639,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.ProcedureProcedureParameter' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(652,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.ViewViewConstraint' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(665,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.ViewConstraintConstraintColumn' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(678,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.ViewConstraintForeignKey' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(691,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.FromForeignKeyViewColumn' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-5.0.ssdl(704,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.ToForeignKeyViewColumn' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(4,9): エラー 0169: すべての SSDL アーティファクトは同じプロバイダーをターゲットにする必要があります。ProviderManifestToken '5' は、以前に検出された '5.1' とは異なります。

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(7,4): エラー 0019: EntityContainer 名は一意である必要があります。「Schema」という名前の EntityContainer は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(391,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.Table' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(403,4) : エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.TableColumn' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(429,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.View' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(441,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.ViewColumn' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(467,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.Function' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(492,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.Procedure' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(502,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.Parameter' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(526,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.Constraint' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(538,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.CheckConstraint' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(546,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.ConstraintColumn' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(555,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.ForeignKeyConstraint' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(564,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.ForeignKey' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(575,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.ViewConstraint' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(590,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.TableTableConstraint' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(603,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.ConstraintConstraintColumn' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(616,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.ConstraintForeignKey' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(629,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.FromForeignKeyColumn' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(642,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.ToForeignKeyColumn' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(655,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.TableTableColumn' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(668,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.ViewViewColumn' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(681,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.FunctionFunctionParameter' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(694,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.ProcedureProcedureParameter' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(707,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.ViewViewConstraint' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(720,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.ViewConstraintConstraintColumn' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(733,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.ViewConstraintForeignKey' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(746,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.FromForeignKeyViewColumn' は既に定義されています。

MySql.Data.Entity.Properties.SchemaDefinition-6.0.ssdl(759,4): エラー 0019: スキーマ内の各型名は一意である必要があります。型名 'MySqlClient.ToForeignKeyViewColumn' は既に定義されています。|

4

4 に答える 4

3

正確な原因はまだわかりませんが、ランダムクラッシュが修正されたようです。

を変更する

metadata=res://*;

EDMXファイルの実際の名前空間は機能しているようです。

metadata=res://MyApplication.Entities;

接続文字列を修正する際の問題は、次のようになります。

<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"/>
于 2009-09-11T12:54:40.093 に答える
1

project/EDMX 名前空間を含めるように接続文字列を変更すると、うまくいきました。ただし、「.Entities」はありません。

私の場合、複数のプロジェクトを持つソリューションがあり、それぞれが異なる MySQL データベースを参照する EDMX ファイルを持っていました。個別には問題ありませんが、テストを実行するときに一緒に実行すると、上記のエラーが発生しました。

于 2010-01-21T19:23:46.357 に答える
1

エンティティフレームワークを何ヶ月も問題なく使用した後、MySql Connector 6.2.2で突然この問題が発生しました。

私は自分の手順をたどり、2 つのことを行いました。何が問題を引き起こしたのかはわかりませんが、それはそのうちの 1 つでした。次に、それWeb.configを修正するために何をしたかを説明します。

私は Ajax ツールキットと、私が取り組んでいるアプリ内の別のチャート作成ツールキットで遊んでいました。

  1. アプリで遊んでいるときに、デザイン ビューから新しいデータソースの作成ウィザードを使用して、グラフを EntityDataSource にデータバインドしようとしました。

  2. また、MySQL.Data 名前空間との基本的な ado.net 接続を使用して、いくつかのデータ接続を行いました。私のアプリは、一貫して型付けされたデータセットとエンティティ フレームワークでした。

これを行うMySqlコネクタ/ネットAPIへの参照が追加された可能性があります。私は Windows 7 を使用しており、4 日前にアプリをバックアップしたので、それを復元して 2 つの Web 構成ファイルを比較しました。違いは、このエラーが発生したアプリのアセンブリ セクションの最後に、次の追加のアセンブリ参照があったことです。

<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" />

私はそれらを削除しました.MySqlから必要なのは次のとおりです:

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

これで誰かの問題が解決することを願っています!

于 2010-04-20T20:03:13.643 に答える
0

人によっては、bin フォルダーをクリアしてから、もう一度試してください。私の場合、サーバー 2003 サイトに展開するときにこのエラーが発生しました。プロジェクトの名前を変更したところ、古いアセンブリ (.dll) がそこにありました。接続文字列は "res://*;..." で始まるため、リソースのすべてのアセンブリ (読み込まれていないものも含む) を検索し、(明らかに) 重複を見つけました。

于 2015-03-12T20:43:50.830 に答える