zoukankan      html  css  js  c++  java
  • EntityFramework 关于实体模型自关联问题

    问题如下:

    我有一个实体数据模型,里面有一个申请人(基表),然后有两个继承,法人和自然人,同时,我的法人和自然人都有一个1对多的自关联 
    我有一个查询,目的是为了查询出属于自然人的申请人,linq 语句是这么写的 
    List<申请人> Apply = (from ApplyPerson in contain.申请人 where ApplyPerson is 自然人 select ApplyPerson).ToList(); 
    但是每次程序执行到这里都会报错,错误提示是 
    实体数据模型的设计是:穷途末路,望解答!

    问题补充:

    删除了自然和法人的自连接关系后就不会报错

    有一个奇怪现象就是:如果我查询自然人,把法人的自连接关系删除后就没有问题,如果我查询法人,自然会报错,把自然人的自连接关系删除后也不会报错。

    也就是说,查询一个实体,就需要把另外一个实体的自连接关系删除了才不会出错

    这是我在园子里提出的一个问题,但是后面被我解决了,解决办法如下:

    问题解决了,问题出在,自关联中需要指定对应关系,也就是说,我在自然人和法人中添加了一个字段交nodeID,他们的对应关系是 自然人ID<---->自然人1nodeID,这样也就不会出现问题了。

    刚开始为什么没有加上对应关系,其主要要原因是,我还有一个联系人表,他跟申请人表也有一个1对多的关联关系,但是这里我并没有设置对应关系,程序也能够正常运行,所以就简单的认为其他地方也能够正常运行,但是最终不幸还是发生了,如果不是今晚在不停的测试各种可能造成错误发生情况,可能程序会一直卡在这里了,呵呵。问题解决,不过遗留了一个问题,在关联关系中需不需要设置对应关系....有待查证

    领域驱动模型,他是个好东西,如果能够很好的掌握,对于程序的开发来说,是一大助力,这也是一种对个人能力的质的提升!

  • 相关阅读:
    运动世界校园破解2.0
    Docker进阶操作
    一键开启https
    Docker的第一次实践总结
    手机通话黑屏
    mysql安装、操作、配置、远程
    excel添加列数据导入后,列数据不显示的问题
    常见邮箱的各类协议服务器地址
    POP3/SMTP/IMAP等邮箱协议的基本概念
    You credentials did not work (The logon attempt failed)
  • 原文地址:https://www.cnblogs.com/xlhblogs/p/2418829.html
Copyright © 2011-2022 走看看