我在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与来自不同数据库的相同表名冲突
- C#线程开发之System.Thread类详解 2023-06-08
- Unity实现物体左右移动效果 2023-01-27
- C#中backgroundWorker类的用法详解 2023-03-04
- 基于C#调用c++Dll结构体数组指针的问题详解 2022-12-01
- C#并发容器之ConcurrentDictionary与普通Dictionary带锁性能详解 2023-04-10
- C# 可空类型的具体使用 2023-02-08
- 详解Unity地面检测方案 2023-04-21
- C#笔试题之同线程Lock语句递归不会死锁 2023-02-08
- C#客户端程序调用外部程序的3种实现方法 2022-12-11
- c# – linux / mono上的HTTP性能 2023-09-19