【问题标题】:EF one to many Relationship navigateEF 一对多 关系导航
【发布时间】:2015-06-10 04:42:11
【问题描述】:

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

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

同时,这种join方法也有效

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}]

【问题讨论】:

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


    【解决方案1】:

    找到解决办法

    var test = from e in DB.UnAuthEvents
                           join a in DB.UnAuthExceptionLists
                           on e.EventID equals a.EventID
                           where e.EventID == 1
                           select new ExceptionDTO
                           {
                               ExceptionTypeID = e.EventID ,
                               unauthTest = DB.UnAuthExceptionLists.Select(b=>new ExceptionListDTO {KeyFromOther= b.KeyFromOther,EventID = b.EventID}).Where(i=>i.EventID==e.EventID).ToList()
    
                           };
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-18
      • 1970-01-01
      • 2017-10-26
      • 2021-11-18
      • 2013-12-28
      相关资源
      最近更新 更多