我正在编写一个EF存储库,我的一个函数允许您通过谓词查找特定对象,同时指定包含
IQueryable<T> FindBy(Expression<Func<T, bool>> predicate,
params Expression<Func<T, object>>[] includes)
这很好用,但是我要指定的其中一个包含是导航属性的导航属性。
我的通话目前看起来像"Folders.Devices"
,如果指定为字符串。
var folder = _Folders.FindBy(f => f.FolderId == id, f => f.Devices).FirstOrDefault();
如果我要按字符串指定这个额外的导航属性,那么它将是
"Folders.Devices.Nodes"
我的问题是如何在代码中的Nodes
中包含每个Device
的{{1}}属性?
答案 0 :(得分:2)
var folder = _Folders.FindBy(f => f.FolderId == id, f => f.Devices.SelectMany(x=>x.Nodes)).FirstOrDefault();