我需要访问两个数据库(未来可能还有更多)。
对于第一个,我创建了一个ADO.NET实体数据模型,然后从中创建了EF Clients
生成器。一切都很完美。
对于第二个数据库,我也这样做。没有错误。
但是在两个数据库中我都有一个表Clients
,而我遇到的问题是从第二个数据库生成的Clients
模型会覆盖第一个数据库中的{{1}}模型,我会遇到错误MVC项目。
我该如何解决这个问题?
编辑: 我已经完成了teo van kot建议(最初在模型中创建文件夹而不是在根文件夹中)并且乍一看似乎工作,但是当我运行应用程序时我得到了这个:
指定的架构无效。错误:CLR类型到EDM的映射 type是不明确的,因为多个CLR类型与EDM类型匹配 '客户&#39 ;.以前发现CLR类型 ' test.dbWCF.Clients',新发现的CLR类型 ' test.dbSBD.Clients'
正如@Gert Arnold指出的那样,确实我"固定"这个肮脏的解决方法:
解决方法:更改两个相同类之一的属性。
EF匹配类名和类属性。所以我改变了一个 其中一个EF对象上的属性名称,错误消失了。
答案 0 :(得分:2)
使用namespaces
。
基本上在你的项目中创建2个文件夹ex。 DbContext1
和DbContext2
。然后在单独的文件夹中生成模型,然后VS自动在不同的名称空间中创建它们,以便您可以像下面这样调用它们:
DbContext1.Clients
和
DbContext2.Clients
请注意,名称空间可能不同,这完全取决于您的项目结构。