System.Data.Entity.Core.MappingException,概念侧的abc不会映射为对象侧的类型“ System.Enum”

时间:2018-10-19 05:32:54

标签: c# model-view-controller entity-framework-core

已花了几个小时解决此错误,但仍无法找出原因。

  

System.Data.Entity.Core.MappingException:'类型'abc.Database.Enum'在   概念性方面无法映射为对象上的类型'System.Enum'   侧。两种类型都必须是抽象的,或者两者都必须是具体的   类型。”

enter image description here

我在做什么

  1. 使用db first方法。 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步抛出。

我尝试过的事情:

  • 重建数据库模型类
  • 重建自定义dbcontext类
  • 删除bin / obj文件夹,清理解决方案并重建。

以上方法均无效。

希望有人可以对此有所启发。 谢谢

1 个答案:

答案 0 :(得分:0)

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