web-dev-qa-db-ja.com

エンティティフレームワーク-定義済み

これまでに遭遇したことがないEDMXファイルに問題があります。サイトの実行中またはデバッグ中にランダムに見えると、EFは爆破し、すべてが再定義されたことを報告します。アプリプールを再起動し、毎回デバッガーを再接続し、中断したところから再開し、その後爆弾が発生するまで再び機能するようにする必要があります。

私はすでに別の名前でEDMXを再作成しているため、MyAppEntities * 1 *

エラーは:

Error: Schema specified is not valid. Errors: App_Code.Fck.csdl(3,4) : 
error 0019: The EntityContainer name must be unique. An EntityContainer with the name 'MyAppEntities1' is already defined. App_Code.Fck.csdl(69,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.AdSection' was already defined. App_Code.Fck.csdl(79,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.AgeRating' was already defined. App_Code.Fck.csdl(89,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.Comment' was already defined. App_Code.Fck.csdl(101,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.ContentImage' was already defined. App_Code.Fck.csdl(115,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.ContentVideo' was already defined. App_Code.Fck.csdl(126,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.FeaturePlan' was already defined. App_Code.Fck.csdl(142,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.Flick' was already defined. App_Code.Fck.csdl(165,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.Gallery' was already defined. App_Code.Fck.csdl(184,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.Genre' was already defined. App_Code.Fck.csdl(197,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.Like' was already defined. App_Code.Fck.csdl(208,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.Meta' was already defined. App_Code.Fck.csdl(216,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.Payment' was already defined. App_Code.Fck.csdl(236,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.StatusUpdate' was already defined. App_Code.Fck.csdl(246,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.UserProfile' was already defined. App_Code.Fck.csdl(277,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.FK_FeaturePlans_AdSections' was already defined. App_Code.Fck.csdl(289,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.FK_Flicks_AgeRatings' was already defined. App_Code.Fck.csdl(301,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.FK_Comments_Users' was already defined. App_Code.Fck.csdl(313,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.FK_Payments_FeaturePlans' was already defined. App_Code.Fck.csdl(325,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.FK_Flicks_Users' was already defined. App_Code.Fck.csdl(337,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.FK_Genres_Genres' was already defined. App_Code.Fck.csdl(349,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.FK_Likes_Users' was already defined. App_Code.Fck.csdl(361,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.FK_Payments_Users' was already defined. App_Code.Fck.csdl(373,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.FK_StatusUpdates_Users' was already defined. App_Code.Fck.csdl(385,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.FlickGenres' was already defined. App_Code.Fck.csdl(389,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.User' was already defined. App_Code.Fck.csdl(401,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.FK_Users_be_Users' was already defined. App_Code.Fck.csdl(413,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.ContentImageSet' was already defined. App_Code.Fck.csdl(426,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.FK_ContentImages_ContentImageSets' was already defined.
32
Echilon

モデルを含むプロジェクトのアセンブリ名を変更できます。

元のアセンブリへの参照は、まだクライアントアプリケーションにありました。

ASP.net Webアプリケーション:-dllおよびpdbファイルを手動で削除します。

ASP.net Webサイト:-IISリセットしてから、フォルダーC:\ windows\Microsoft.net\your frameworkのasp.net一時ファイルをフラッシュしますversion\temp asp.netファイル\

53
Damith

問題がまだ解決されていない場合は、web.configで接続文字列を変更してみてください。

私の場合、connectionStringを変更しました

From

<add name="StudentRegistrationDB" connectionString="metadata=res://*/App_Code.EFDataModel.StudentReg.csdl|res://*/App_Code.EFDataModel.StudentReg.ssdl|res://*/App_Code.EFDataModel.StudentReg.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.;initial catalog=StudentRegistration;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" />

To:

 <add name="StudentRegistrationDB" connectionString="metadata=res://App_Code.EFDataModel2.StudentRegDB.csdl|res://App_Code.EFDataModel2.StudentRegDB.ssdl|res://App_Code.EFDataModel2.StudentRegDB.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.;initial catalog=StudentRegistration;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" />

メタデータの「スター」は削除されているため、メタデータは絶対位置を指すようになっています。 「スター」のため、EFはあらゆる場所を検索しています。したがって、重複が発生する可能性があります

注:これは単純な修正です。つまり、重複データを消去しないので、お勧めできません。最良の方法は、以前の回答で示唆されているように、重複する.pdb/.dllファイルを削除することです。

4
Ganesh Vellanki

これと同じエラーが発生しました。これはDLLに関する問題です。私の場合、重複したDLLでした。

4
Lücks

私は別の解決策で同じ問題を抱えていました。エンティティフレームワークを使用する2つのプロジェクトがあり、同じ名前の同じデータベースのモデル、両方のモデルに追加されたすべてのテーブルが内部例外メッセージで解決されましたいずれかのモデルの名前を変更する

3
rafael

同じ問題が発生しました。 Entity Frameworkで生成されたファイル[〜#〜]できません[〜#〜] App_Codeフォルダーにあります。私はEDMXファイルを意味します。

ファイルを参照できなかったというエラーがあったので、プロパティをコンテンツからコンパイルにチェックしました。これでVSエラーは解決しましたが、2つのインスタンスが作成されました-プリコンパイルされたインスタンスとランタイムコンパイルされたインスタンス。

App_codeフォルダーはコード専用の特別なフォルダーであるため、解決策はそれをApp_codeフォルダーから遠ざけることです。

2
Gumowy Kaczak

アプリ全体を再起動することなく、サブアプリケーションのアセンブリを動的にロードできるようにするプロセスに取り組んでいるときに、この問題に遭遇しました。私はDbContextでEF 5.0を使用しています。私の回避策は:

  1. エンティティのコンテナ名を変更して、アセンブリのバージョンを反映するようにします。 CustomerEntities_1_0_7_0をクリックして、edmxを保存します。
  2. コンテキストを手動で修正して、バージョンサフィックスを削除します。

    public partial class CustomersEntities : DbContext
    {
    public CustomersEntities() : base("name=CustomersEntities")
    
  3. 同様にapp.configを手動で修正します。

2
johndsamuels

私の場合、モデルを削除して新しい名前で作成すると、この問題が解決しました

2
Yasser Amer

2日間掘り進んだ後、ようやく問題の原因を発見しました。同じプロジェクトの同じエンティティフレームワークデータベースを指す2つのDLL(データベースアプリケーション)がありました。つまり、1つのデータベースに対して重複するDLLがありました。無関係なdllを削除した後、正常に動作し始めました。

0
Umesh Yeware

私は最近この例外に直面し、この問題の解決策は、古いDLLまたは重複するDLLソリューションビンフォルダーで参照されている)を削除することです。これで私の問題は完全に解決しました。

0
Ricky