【问题标题】:The mapping of CLR type to EDM type is ambiguous because multiple CLR typesCLR 类型到 EDM 类型的映射不明确,因为多个 CLR 类型
【发布时间】:2018-08-19 16:56:26
【问题描述】:

我有两个数据库,但两个数据库具有相同的架构。我已将它们的 edmx 文件添加到不同的文件夹中以分隔命名空间,但我仍然收到此异常:

The mapping of CLR type to EDM type is ambiguous because multiple CLR types match the EDM type 'bettingoffer'. Previously found CLR type 'SpocosyPanel.Data.Tennis.bettingoffer', newly found CLR type 'SpocosyPanel.Data.Soccer.bettingoffer'.

我的问题是如何使用两个看似相同但来自不同数据源的 edmx 文件

【问题讨论】:

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


【解决方案1】:

是的,这是 Entity Framework 6 及更低版本中的一个已知错误。 即使它们位于不同的命名空间,您也不能使用相同的数据库。这也发生在代码优先设计中,并且在GitHub 上也打开了关于该问题的帖子。

其中一位开发人员甚至回答说:

EF7 代码库已支持此功能。我们真的没有 任何明确支持它的东西,这只是 EF7 微笑中的轻量级专用元数据系统。

意思是,如果您使用 Entity Framework 6 或更低版本,除了不在代码中两次使用相同的数据库之外,您无需做太多事情。

【讨论】:

  • 那么解决办法是什么?
  • Entity Framework 6 及以下版本没有此问题,此错误将永远作为仅适用于 Entity Framework 7 的修复。您将不得不使用不同的数据库。
  • 如果可以的话,最有效的解决方法是重命名实体 (EDM) 类或 CLR 类。有时在类之间拥有不同的公共财产也可以;有时甚至更改名称也有效。
猜你喜欢
  • 2015-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-20
  • 1970-01-01
  • 1970-01-01
  • 2014-07-31
  • 1970-01-01
相关资源
最近更新 更多