entity framework discriminator error
前几天使用code first碰到错误:列名 'Discriminator' 无效。这是一个很少见的错误,搜索了很久才发现是code first的poco实体对象的继承问题。
比如,我定义了一个实体类,对应数据库的Project表:
| 
 1 
2 
3 
4 
5 
6 
 | 
[Table("T_Student")]public class Student{    public int Id { get; set; }    public string Name { get; set; }} | 
后来又定义了一个子类ChildProject继承于它,但是子类不对应数据库任何表:
| 
 1 
2 
3 
4 
 | 
public class StudentResult : Student{    public string ClassName { get; set; }} | 
于是每次EF的Context访问到Project或者ChildProject的时候,都出现了错误:列名 'Discriminator' 无效。
解决办法:子类并不映射到任何数据库,加上一个不映射的属性[NotMapped]就可以了。
| 
 1 
2 
3 
4 
5 
 | 
[NotMapped]public class StudentResult : Student{    public string ClassName { get; set; }} | 
entity framework discriminator error的更多相关文章
- error 0152: No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.SqlClient'
		
error 0152: No Entity Framework provider found for the ADO.NET provider with invariant name 'System. ...
 - 异常:error 0152: No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.SqlClient'
		
error 0152: No Entity Framework provider found for the ADO.NET provider with invariant name 'System. ...
 - Entity Framework教程(第二版)
		
源起 很多年前刚毕业那阵写过一篇关于Entity Framework的文章,没发首页却得到100+的推荐.可能是当时Entity Framework刚刚发布介绍EF的文章比较少.一晃这么多年过去了,E ...
 - Code First :使用Entity. Framework编程(6) ----转发 收藏
		
Chapter6 Controlling Database Location,Creation Process, and Seed Data 第6章 控制数据库位置,创建过程和种子数据 In prev ...
 - Code First :使用Entity. Framework编程(5) ----转发 收藏
		
第五章 对数据库映射使用默认规则与配置 到目前为止我们已经领略了Code First的默认规则与配置对属性.类间关系的影响.在这两个领域内,Code First不仅影响模型也影响数据库.在这一章,你将 ...
 - Using MySQL Connector .NET 6.6.4 with Entity Framework 5
		
I had been waiting for the latest MySQL connector for .NET to come out so I can move on to the new a ...
 - Working with Data »  Getting started with ASP.NET Core and Entity Framework Core using Visual Studio »  更新关系数据
		
Updating related data¶ 7 of 7 people found this helpful The Contoso University sample web applicatio ...
 - MVC5 Entity Framework学习之Entity Framework高级功能(转)
		
在之前的文章中,你已经学习了如何实现每个层次结构一个表继承.本节中你将学习使用Entity Framework Code First来开发ASP.NET web应用程序时可以利用的高级功能. 在本节中 ...
 - 在Oracle中使用Entity Framework 6 CodeFirst
		
项目中需要将系统从SQLServer数据库迁移到Oracle上.由于原大部分数据访问操作都是通过包装了Entity Framework的统一访问入口实现的,所以需要研究Entity Framework ...
 
随机推荐
- [转]CentOS 7.3 安装MySQL
			
1.下载mysql源 yum -y install wget wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarc ...
 - Python lib库docker-py和docker的区别
			
1)两者的安装方式 pip install docker A Python library for the Docker Engine API pip install docker-py A Pyth ...
 - 以证书的方式登录ssh
			
常常要登录多台Linux服务器,过去在Windows下使用SecureCRT,比较省心,配置还可以放到云盘,实时同步.现在改用MAC貌似就没有那么好用的东西了,每次ssh命令登录都需要输入密码,很烦. ...
 - Codeforces Round #541 (Div. 2)D(并查集(dsu),拓扑排序)
			
#include<bits/stdc++.h>using namespace std;vector<int>g[2007];int fa[2007],vis[2007],num ...
 - 接口和抽象类有什么区别(Java基础)
			
接口可以多实现 Java中抽象类只能单继承 接口 相对于类来说 可以实现多个接口 抽象相对于 类来说 只能单一继承 一个类只能继承一个抽象类,但可以实现多个接口. 抽象类中可以包含抽象方法和 ...
 - 【以太坊开发】区块链中的预言机:Oraclize原理介绍
			
智能合约的作用很多,但是很多数据还是要基于互联网,那么如何在合约中获取互联网中的数据?Oraclize就是为了这个目的而诞生的. 工作原理: 智能合约通过对Oraclize发布一个合约之间的调用请求来 ...
 - 解决织梦手机网站M文件夹动态游览不生成html
			
今天的做手机网站的时候,发现dede织梦M文件夹下会生成index.html.对于手机网站来说,太麻烦了.每次更新手机网站首页都要把index.html删除掉重新生成. 然而织梦不支持手机网站首页动态 ...
 - Oracle使用PARTITION  BY 实现数据稠化报表
			
所谓的数据稠化,就是补全缺失的数据.因为在数据库表中,存储的数据经常是稀疏的(sparse data),也就是不完整的.比如记录一个员工每个月的销售额,用这么一个销售表来记录:SalesRecord( ...
 - 使用js实现水波效果
			
使用到的工具:jQuery Ripples Plugin 下载安装 git clone https://github.com/sirxemic/jquery.ripples.git 引入jquery, ...
 - Solr学习笔记(4) —— SolrCloud的概述和搭建
			
一.概述 1.1 什么是SolrCloud Lucene是一个Java语言编写的利用倒排原理实现的文本检索类库: Solr是以Lucene为基础实现的文本检索应用服务.Solr部署方式有单机方式.多机 ...