今天保存对象时碰到问题:
{"列名 'Discriminator' 无效。\r\n列名 'Discriminator' 无效。"}
 百度了一下,百度找到的一个解决:
 内容:
环境: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 { }
 
 
总的意思就是由于继承,导致context无法识别子类,造成错误。
在继承的类上加上[NotMapped]就行了
还有其他的出错可能,有一种是由于父类有好几个继承的子类,其中一个忘记添加了映射导致。
至于其他的可能,碰到再说

保存对象时碰到的问题-列名 'Discriminator' 无效的更多相关文章

  1. EF code first出现错误:列名 Discriminator 无效

    转载:https://blog.csdn.net/lanse_my/article/details/38128355 前几天使用code first碰到错误:列名 'Discriminator' 无效 ...

  2. .net mvc 列名 'Discriminator' 无效

    环境:asp.net 4.0 + MVC 4 + Entity Framework 5异常:使用code first 碰到错误:列名 'Discriminator' 无效.这是一个很少见的错误,搜索了 ...

  3. 关于SessionFactory的不同实现类分别通过getCurrentSession()方法 和 openSession() 方法获取的Session对象在保存对象时的一些区别

    一.单向多对一关联关系 一).使用LocalSessionFactoryBean类,即在applicationContext中配置的 <!-- 配置SessionFactory 使用LocalS ...

  4. 笔记:EF出现列名 'Discriminator' 无效、类没有加入数据库上下文也被数据迁移生成表

    笔记: EF出现列名 'Discriminator' 无效: 类没有加入数据库上下文也被数据迁移生成表: 出现该问题一般是使用了某个基类继承了实体类: 原因是code first的POCO实体对象的继 ...

  5. EF Code First列名 'Discriminator' 无效的问题

    新建了一个类继承EF  Model类,运行报错 EF Code First列名 'Discriminator' 无效 EF会把项目中在DbContext中引用的所有的Model类及这些Model类对应 ...

  6. EF code first:列名 'Discriminator' 无效

    使用EF code first编写类继承的时候,出现列名 'Discriminator' 无效 . 字段中没有列名 'Discriminator' 原来在代码中,定义了一个类A,类B,B继承A,但是数 ...

  7. 列名 'Discriminator' 无效 解决方案

     {"列名 'Discriminator' 无效.\r\n列名 'Discriminator' 无效.\r\n列名 'Discriminator' 无效.\r\n列名 'FileUrl' 无 ...

  8. CPP-STL:用vector保存对象时保存指针的优点, 以及reserve的使用(转)

    代码1 #include <vector> #include <stdio.h> class A { public: A() { printf("A()/n" ...

  9. 转载:用vector保存对象时保存指针的优点, 以及reserve的使用

    #include <vector> #include <stdio.h> class A { public: A() { printf("A()/n"); ...

随机推荐

  1. e800. 监听JSlider的数值变化

    // Create horizontal slider JSlider slider = new JSlider(); // Register a change listener slider.add ...

  2. C# 在托盘显示图标

    //上面一行是主窗体InitializeComponent()方法中需要添加的引用 this.SizeChanged += new System.EventHandler(this.Form1_Siz ...

  3. android项目引入三方类库配置文件

    android项目中可能会用到诸多外部的三方库,如**.jar或者引用第三个项目,那么它们引用的这些东西都放在哪里呢?我们来看下. 如果引入的是三方的jar包,我们默认的是放在了libs文件夹下,然后 ...

  4. POJ1157 LITTLE SHOP OF FLOWERS DP

    题目 http://poj.org/problem?id=1157 题目大意 有f个花,k个瓶子,每一个花放每一个瓶子都有一个特定的美学值,问美学值最大是多少.注意,i号花不能出如今某大于i号花后面. ...

  5. [Php] Deprecated: Function ereg_replace() is deprecated

    From: http://www.zxyf.net/n6805c18.shtml 这个问题是因为你用的php版本过高. 在php5.3中,正则函数ereg_replace已经废弃,而dedecms还继 ...

  6. 基于struts2的ajaxfileupload异步上传插件的使用

    服务器端采用struts2来处理文件上传. 所需环境: jquery.js ajaxfileupload.js struts2所依赖的jar包 及struts2-json-plugin-2.1.8.1 ...

  7. lkl风控.随机森林模型测试代码spark1.6

    /** * Created by lkl on 2017/10/9. */ import org.apache.spark.sql.hive.HiveContext import org.apache ...

  8. wordpress主题升级之后返回到原来版本主题的方法

    wordpress后台经常可以看到主题提示升级,但是发现升级之后样式,颜色等都变了,不是以前的样子了,这时候如果想要返回到以前版本,前提,必须以前版本有备份. 在wordpress里面找到主题===添 ...

  9. Centos7系统配置上的变化

    https://www.cnblogs.com/panblack/p/Centos7-WhatsNew-01.html https://www.cnblogs.com/panblack/p/Cento ...

  10. Python 常用类库

    python除了关键字(keywords)和内置的类型和函数(builtins),更多的功能是通过libraries(即modules)来提供的. 常用的libraries(modules)如下: 1 ...