我在Visual Studio 2012(C#)中使用Entity Framework 4和MVC 3.我先使用数据库;有两个独立的数据库,每个数据库都有自己的命名空间和两个独立的edmx文件.每个数据库都有一个具有相同名称和字段(但内容不同)的表.当我添...
我在Visual Studio 2012(C#)中使用Entity Framework 4和MVC 3.
我先使用数据库;有两个独立的数据库,每个数据库都有自己的命名空间和两个独立的edmx文件.每个数据库都有一个具有相同名称和字段(但内容不同)的表.当我添加第二个表时,我开始遇到编译错误.
Ambiguity between 'Interface.CodeFormStatus.FormStatusCodeID'
and 'Interface.CodeFormStatus.FormStatusCodeID'
似乎有一些复杂的解决方法,或者我可以重命名其中一个表.是不是一个简单的解决方案,因为这必须是一个相当普遍的问题.
解决方法:
我遇到了一个情况,我有两个数据库(一个是另一个的旧版本),我需要将它们集成到一个项目中.当然,几乎每个名字都有冲突.
我为每个数据库创建了两个独立的edmx文件,为了清楚起见,将每个文件放在自己的命名空间中.然后,我编辑了每个实体名称,以反映它来自哪个数据库 – (例如,“活动”,两者都变成了“v13Activities”和“v14Activities”).
对于要在两个数据库之间进行镜像的操作,我编写了一个包含两个上下文的包装器.这使我的代码重复性降低,同步问题也减少了.
希望这种方法可以帮助其他人 – 这似乎是一个模糊的问题,这个答案是谷歌的最佳结果之一!
更新:在EF 6.1中,还有另一种解决方案.你可以使用“冲突”名称,并在使用“Code First From Database” option时用简单的命名空间将它们分开.我会提倡这个解决方案,就像旧的XML .edmx风格is going to be phased out starting in EF Core一样.
本文标题为:c# – Entity Framework与来自不同数据库的相同表名冲突
基础教程推荐
- 使用.Net Core 2.2创建windows服务 2023-09-26
- C#实现文章添加内链的方法 2022-12-30
- C#使用log4net打日志 2023-05-23
- 浅析C# 9.0 新特性之 Lambda 弃元参数 2023-03-03
- .NetCore 发布到 Centos docker 2023-09-28
- C#设计模式之Observer观察者模式解决牛顿童鞋成绩问题示例 2022-11-10
- C#使用RichTextBox实现替换文字及改变字体颜色功能示例 2023-01-11
- C#合并多种格式文件为PDF的方法 2022-12-06
- c#中DataTable转List的2种方法示例 2023-04-10
- Unity 实现鼠标滑过UI时触发动画的操作 2023-04-10