【问题标题】:Multiple DBContext [duplicate]多个 DBContext [重复]
【发布时间】:2016-06-15 13:08:54
【问题描述】:

我有两个需要访问的数据库(将来可能还会更多)。 对于第一个,我创建了一个 ADO.NET 实体数据模型,然后从中创建了 EF DBContext Generator。一切都很完美。

对于第二个数据库,我也这样做。没有错误。 然而,在这两个数据库中,我都有一个表 Clients,我遇到的问题是从第二个数据库生成的 Clients 模型覆盖了第一个数据库中的 Clients 模型,我在 MVC 项目中遇到错误。

我该如何解决这个问题?


编辑: 我按照 teo van kot 的建议做了(起初在模型中创建文件夹而不是在根文件夹中创建文件夹),乍一看似乎可以工作,但是当我运行应用程序时,我得到了这个:

指定的架构无效。错误:CLR 类型到 EDM 的映射 类型不明确,因为多个 CLR 类型与 EDM 类型匹配 '客户'。以前找到的CLR类型 'test.dbWCF.Clients',新发现的 CLR 类型 'test.dbSBD.Clients'。


正如@Gert Arnold 指出的那样,确实我“修复”了这种肮脏的解决方法:

解决方法:更改两个相同类之一的属性。

EF 匹配类名和类属性。所以我只是换了一个 EF 对象之一上的属性名称,并且错误消失了。

【问题讨论】:

    标签: c# .net asp.net-mvc entity-framework ado.net


    【解决方案1】:

    使用namespaces

    基本上在您的项目中创建 2 个文件夹 ex。 DbContext1DbContext2。然后在单独的文件夹中生成模型,然后 VS 会自动在单独的命名空间中创建它们,因此您可以像这样调用它们:

    DbContext1.Clients
    

    DbContext2.Clients
    

    请注意,命名空间可能不同,这完全取决于您的项目结构。

    【讨论】:

    • 似乎工作,然后我得到这个:指定的架构无效。错误:CLR 类型到 EDM 类型的映射不明确,因为多个 CLR 类型与 EDM 类型“客户端”匹配。之前发现CLR类型'test.Models.WCF.Clients',新发现CLR类型'test.Models.SBD.Clients'。
    • @RaresP 您仍然遇到一些命名空间问题,但我需要更多信息来了解如何提供帮助。最好再写一个包含所有细节的问题
    猜你喜欢
    • 2019-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多