【问题标题】:Entity Framework - Multiple CLR Types实体框架 - 多种 CLR 类型
【发布时间】:2015-04-08 20:44:39
【问题描述】:

执行我的一个 LINQ 查询时出现以下错误

CLR 类型到 EDM 类型的映射是不明确的,因为多个 CLR 类型与 EDM 类型“产品”匹配。以前找到的CLR类型 'TF.MyProject.DAL.Product,新发现的CLR类型 'TF.MyProject.DTO.Product'。

Entity Framework 生成的类和 DTO 对象都在它们自己的命名空间下。这以前有效,下面是我迄今为止尝试过的...

  1. 重新生成 EDMX 模型
  2. 删除并创建了一个新的 EDMX 模型
  3. 运行自定义工具生成模板文件
  4. 确保解决方案中的所有项目都使用相同的实体框架版本。

实体框架版本:6.1.3

以下是我当前项目的设置方式

我的项目

  • /DAL/MyProjectModel.edmx
  • /DTO/Product.cs

任何想法或建议都会有所帮助。这在我以前使用版本 6 的项目中有效。不确定它是否特定于版本 6 中的版本..

注意:将 DAL 移至自己的项目可以解决问题

【问题讨论】:

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


    【解决方案1】:

    您有两个具有相同名称Product 的类。 Entity Framework 仅使用类名,与声明它的命名空间或文件无关。错误消息清楚地表明您有两个 Product 类,一个在 TF.MyProject.DAL 命名空间中,另一个在 TF.MyProject.DTO 中。

    尝试将这些 Product 类重命名为其他名称,然后重试。

    【讨论】:

    • 好吧,如果我将 DAL 移到它自己的项目中,那么它可以解决问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 2019-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多