我在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与来自不同数据库的相同表名冲突


基础教程推荐
- 【翻译】- ASP.NET Core 中的内存管理和模式 2023-09-27
- C# Random类随机函数实例详解 2023-07-04
- winform实现五子棋游戏 2022-12-09
- c# – 是否可以在远程Windows机器上创建性能计数器? 2023-09-19
- C#线程中弹窗的制作方法 2023-05-16
- C#实现循环发送电脑屏幕截图 2023-04-26
- C#并发编程之Task类详解 2023-07-18
- 深入理解C#窗体关闭事件 2023-05-06
- 解决Unity项目中UI脚本丢失的问题 2023-04-14
- c#批量抓取免费代理并且验证有效性的实战教程 2022-12-26