关于c#:Entity Framework-已经定义

Entity Framework - Already Defined

我遇到了我从未遇到过的EDMX文件问题。 当站点正在运行或正在调试时,EF似乎随机出现,EF会炸毁并抱怨一切都已重新定义。 我必须每次重新启动应用程序池并重新连接调试器,然后从我上次中断的地方重新开始,此后再次起作用,直到下一次炸弹爆发为止。

我已经用不同的名称重新创建了EDMX,因此MyAppEntities * 1 *

错误是:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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 \您的框架版本\ temp
asp.net文件\


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

就我而言,我更改了connectionString

1
 

至:

1
 

请注意,元数据中的"星号"已被删除,因此元数据指向绝对位置。由于"星",EF到处搜寻。因此可能会遇到重复

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


我有同样的错误。这是关于dll的问题,就我而言是一个重复的dll。


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


就我而言,删除模型并使用新名称创建它可以解决此问题


我只是有同样的问题。实体框架生成的文件不能位于App_Code文件夹中。我的意思是EDMX文件。

我敢打赌,您遇到了无法引用文件的错误,因此您检查了"内容到编译"中的属性。这解决了VS错误,但是创建了双重实例-预编译一个实例,并编译运行时。

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


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

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

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


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


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


    清理,重建,以发布模式部署。