繁体   English   中英

linq嵌套实体和集合

[英]linq nested entities and collection

我有和实体模型如下。

public class reg{
  public int id {get; set;}
  ...
  public ICollection<trans> trans{get; set;}
}
public class trans{
  public int id {get; set;}
  ...
  public modifiedTrans modifiedTrans{get; set;}
  public virtual reg reg {get; set;}
}
public class modifiedTrans {
  public int id {get; set;}
  ...
  public virtual trans trans {get; set;}
}

我需要一个linq表达式,该表达式使我得到按reg id过滤的结果为

{
 id : x
 ...
 trans : {
  id : y1,
  ...,
  modifiedTrans : {
   id : z1
   ...
   }
  },
  {
   id : y2,
   ...,
   modifiedTrans : {
   id : z2
   ...
  }
 }
}

到目前为止,我最终是这样的:

var query = from r in reg
        let t = r.trans
        let m = t.modifiedTrans 
        where (r => r.Id = 1)
        select new
                       {
                        r = r,
                        t = t,
                        m = m
                        }.FirstOrDefault();

这不是我真正想要的。 谁能帮忙!

这是一个棘手的答案,因为您有一个递归嵌套的实体。 根据对象深层嵌套的频率以及对象的数量或正在加载的修改的百分比,可以更好地懒惰或急于加载(或组合使用)嵌套对象。

更新对不起,我误解你的类。

var result=_db.regs
  .Include(r=>r.trans)
  .Include(r=>r.trans.Select(t=>t.modifiedTrans))
  .Where(r=>r.id==1);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM