实体框架-已定义

本文关键字:定义 框架 实体 | 更新日期: 2023-09-27 18:03:25

我遇到了一个以前从未遇到过的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.

实体框架-已定义

您可能会更改包含模型的项目的程序集名称。

对原始程序集的引用仍在客户端应用程序中。

ASP.net Web应用程序:-手动删除dll和pdb文件。

ASP.net网站:-执行IIS重置,然后清除中的asp.net临时文件文件夹C:''windows''microsoft.net''您的框架版本''tempasp.net文件''

我也有同样的错误。这是一个关于dll的问题,在我的案例中是一个重复的dll。

对于那些问题尚未解决的人,请尝试修改web.config中的连接字符串。

在我的案例中,我更改了connectionString

来自

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

收件人:

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

请注意,元数据中的"星号"已被删除,因此元数据指向绝对位置。因为"明星"英孚到处寻找。因此可能会遇到重复

注意:这是一个简单的修复程序,意味着您不清除任何重复的数据,这不是一个好主意。最好的方法是按照前面的回答建议删除重复的.pdb/.dll文件。

我在一个不同的解决方案中遇到了同样的问题,我有两个项目使用实体框架,同一数据库的模型具有相同的名称,所有添加在两个模型上的表在内部异常消息中,解决方案是将其中一个模型重命名为

我在处理一个进程时遇到了这个问题,该进程允许动态加载子应用程序的程序集,而不需要重新启动整个应用程序。我正在使用EF 5.0与DbContext。我的解决方法是:

  1. 更改实体容器名称,使其反映程序集版本,例如CustomerEntities_1_0_7_0,并保存edmx
  2. 手动修改上下文以删除版本后缀:

    public partial class CustomersEntities : DbContext
    {
    public CustomersEntities() : base("name=CustomersEntities")
    
  3. 同样手动修改app.config。

我刚刚遇到了同样的问题。实体框架生成的文件不能在App_Code文件夹中。我指的是EDMX文件。

我打赌你们有一个错误,你们不能引用文件,所以你们检查了属性从内容到编译。这解决了VS错误,但创建了两个实例——预编译的一个实例和编译的运行时实例。

解决方案是让它远离App_code文件夹,因为它是只用于代码的特殊文件夹。

在我的案例中,删除模型并用新名称创建它解决了这个问题

我最近遇到了这个异常,解决这个问题的方法是删除解决方案Bin文件夹中引用的旧DLL或重复DLL。这完全解决了我的问题。

经过两天的挖掘,我终于找到了问题的原因。我有两个dll(数据库应用程序(,它们指向同一项目中的同一实体框架数据库。简而言之,它有一个数据库的重复dll。删除不相关的dll后,它开始正常工作。

在发布模式下进行清理、重建和部署。

我终于解决了自己的问题,这真是胡说八道。我只是排除(从项目中排除(包含Model.edmx文件的文件夹