首页 > 解决方案 > System.Data.Entity.Core.MappingException,概念端的 abc 不能映射到对象端的类型“System.Enum”

问题描述

在这个错误上花了几个小时,仍然无法找出原因。

System.Data.Entity.Core.MappingException:概念端的“类型'abc.Database.Enum'不能映射到对象端的类型'System.Enum'。两种类型都必须是抽象类型,或者都必须是具体类型。

在此处输入图像描述

我在做什么

  1. 使用分贝优先方法。db 类模型建立在实际数据库之上
  2. 基于默认 dbcontext 类创建自定义 dbcontext 类。自定义类接受一个参数。

例如

public class TestDbContext:DbContext 
{
    public TestDbContext(string connection) : base(connection) 
    {
    }
    public DbSet<user_menu> user_menus { get; set; }
}
  1. 使用数据库名称作为参数创建一个 testDBContext 对象,找到 dbset 并使用 ToList() 将结果更改/保存到列表中。
  2. 将保存的列表传递给查看。

错误将在第 4 步抛出。

我尝试过的事情:

以上方法均无效。

希望有人可以对此有所了解。谢谢

标签: c#model-view-controllerentity-framework-core

解决方案


不敢相信我花了两天时间。基本上发生的事情是从 dbcontext 返回的 dbset 模型之一中存在拼写错误。我不小心将模型中的属性之一设置为枚举。将其改回字符串类型并工作。错误消息在提供关于在哪里查看事物的提示方面有点模糊,但这对我来说是一个很好的教训。我通过针对整个项目搜索“枚举”发现了这个问题。


推荐阅读