问题如下:
我有一个实体数据模型,里面有一个申请人(基表),然后有两个继承,法人和自然人,同时,我的法人和自然人都有一个1对多的自关联
我有一个查询,目的是为了查询出属于自然人的申请人,linq 语句是这么写的
List<申请人> Apply = (from ApplyPerson in contain.申请人 where ApplyPerson is 自然人 select ApplyPerson).ToList();
但是每次程序执行到这里都会报错,错误提示是
实体数据模型的设计是:,
穷途末路,望解答!
问题补充:
删除了自然和法人的自连接关系后就不会报错
有一个奇怪现象就是:如果我查询自然人,把法人的自连接关系删除后就没有问题,如果我查询法人,自然会报错,把自然人的自连接关系删除后也不会报错。
也就是说,查询一个实体,就需要把另外一个实体的自连接关系删除了才不会出错
这是我在园子里提出的一个问题,但是后面被我解决了,解决办法如下:
问题解决了,问题出在,自关联中需要指定对应关系,也就是说,我在自然人和法人中添加了一个字段交nodeID,他们的对应关系是 自然人ID<---->自然人1nodeID,这样也就不会出现问题了。
刚开始为什么没有加上对应关系,其主要要原因是,我还有一个联系人表,他跟申请人表也有一个1对多的关联关系,但是这里我并没有设置对应关系,程序也能够正常运行,所以就简单的认为其他地方也能够正常运行,但是最终不幸还是发生了,如果不是今晚在不停的测试各种可能造成错误发生情况,可能程序会一直卡在这里了,呵呵。问题解决,不过遗留了一个问题,在关联关系中需不需要设置对应关系....有待查证
领域驱动模型,他是个好东西,如果能够很好的掌握,对于程序的开发来说,是一大助力,这也是一种对个人能力的质的提升!