zl程序教程

您现在的位置是:首页 >  后端

当前栏目

.net mvc 列名 'Discriminator' 无效

NetMVC &# 39 无效 列名
2023-09-27 14:20:55 时间

环境:asp.net 4.0 + MVC 4 + Entity Framework 5
异常:使用code first 碰到错误:列名 'Discriminator' 无效。这是一个很少见的错误,搜索了很久才发现是code first 的poco实体对象的继承问题。
比如,我定义了一个实体类,对应数据库的Project表:

 

    public class Project  
    {  
        int Id { get; set; }  
        string Name { get; set; }  
    }  

 

 后来又定义了一个子类ChildProject继承于它,但是子类不对应数据库任何表:

    public class ChildProject : Project  
    {  
      
    }  

 于是每次EF的Context访问到Project或者ChildProject的时候,都出现了错误:列名 'Discriminator' 无效。
解决办法:子类并不映射到任何数据库,加上一个不映射的属性[NotMapped]就可以了。

    [NotMapped]  
    public class ChildProject : Project  
    {  
      
    }  

 转自:https://blog.csdn.net/ycwol/article/details/45153663