【发布时间】:2013-02-14 17:12:25
【问题描述】:
我有一个包含 100 多个 dables 的数据库。我决定将 EF 模型分成三个不同的模型。有多个表格出现在多个模型中。使用 EF 5.X DbContext Generator 后,我有了 POCO 类。
此模板生成重复的类(出现在多个模型中的类)但具有不同的命名空间。在尝试查询其中之一后,我收到以下错误:
The mapping of CLR type to EDM type is ambiguous because multiple CLR types match the EDM type
遇到这个问题后,我相信我有两种选择:
- 编辑 CSDL、MSL、SSDL 文件以重命名实体。在这种情况下,我会将上下文名称作为前缀附加到实体。
- 编辑 EF 5.x DbContext 生成器以编辑将生成的 POCO 类的名称。在这种情况下,我还将上下文名称作为前缀附加到 POCO 类。
我的问题如下:我应该遵循哪个选项?以及根据选择的选项我需要做什么。如果没有一个选项是有效的,你建议我怎么做?
【问题讨论】:
-
这个问题没有“最佳”答案。您必须找到最适合您需求的解决方案。您没有提到的另一种方法是修改生成器以不再创建已经存在的类。
-
我知道这个问题没有具体的答案,但任何建议都会有所帮助。你知道我怎样才能编辑 DbContext 生成器模板,这样它就不会创建已经存在的类吗?我试图弄清楚,但完全无法理解模板背后的所有代码。
标签: c# entity-framework poco dbcontext edmx