EF一对多关系导航

时间:2015-06-10 04:42:12

标签: linq-to-entities entity-framework-5

我在两个表UnAuthEvents和UnAuthExceptionLists之间有一对多的关系。对于涉及外键引用的所有项目数据要求,我使用“包含”来包含导航属性。在这种情况下,当我喜欢下面,它不会识别UnAuthExceptionLists

 var exception = DB.UnAuthEvents.
                                        Include(i => i.UnAuthExceptionLists)
                                        .Select(u => new
                                        {
                                            u.EventID,
                                            u.UnAuthExceptionLists.ExceptionID
                                        }
                                        );

同时,这种加入方法有效

var test = (from e in DB.UnAuthEvents
                       join a in DB.UnAuthExceptionLists
                       on e.EventID equals a.EventID
                       where e.EventID == 1
                       select new
                       {
                           e.EventID,
                           a.ExceptionID
                       });

问题1:虽然我现在有工作模式,但我想知道这背后的逻辑

问题2:根据我的项目要求,我想获得以下JSON数据格式

[{"EventID":1,"UnAuthExceptionLists":[{"ExceptionID":1},{"ExceptionID":2}]}]

但是我的代码产生了像这样的输出

[{"EventID":1,"ExceptionID":1},{"EventID":1,"ExceptionID":2}]

1 个答案:

答案 0 :(得分:0)

获得此解决方案

{{1}}

ExceptionDTO类有两个属性,一个是ExceptionTypeID,另一个是ExceptionListDTO自定义类的ICollection

但我的第一个问题没有答案:(