MVC+EF 报错 列名 'Discriminator' 无效。

39 篇文章 0 订阅
12 篇文章 0 订阅

1,最近自学MVC+EF 框架中出现了一个错误,我定义了一个Model类型huodong(在数据库中表名称为huodongs),并且定义了一个huodong的子类HD继承它,如下

public class huodong
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string BaoMingDiDian { get; set; }       
        public string U_Context { get; set; }
        public string HuoTime { get; set; }
        public DateTime Opre_Time { get; set; }
    }
public class HD : huodong
    {
        
    }

但是每次运行时都会出现这个错误

后来查阅资料才发现,code first 的poco实体对象的继承问题,每次EF的Context访问到Project或者ChildProject的时候,都出现了错误:列名 'Discriminator' 无效,因为每次映射的时候没找到对应的列就报错了

解决办法:子类并不映射到任何数据库,加上一个不映射的属性[NotMapped]就可以了。

public class huodong
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string BaoMingDiDian { get; set; }       
        public string U_Context { get; set; }
        public string HuoTime { get; set; }
        public DateTime Opre_Time { get; set; }
    }
[NotMapped]
    public class HD : huodong
    {
        
    }

[NotMapped]就是阻止DBContext的时候对这个类进行数据库表的映射,引用的程序集

using System.ComponentModel.DataAnnotations.Schema;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

新时代丘鸣山

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值