1

我正在编写一个 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属性?DeviceDevices

4

1 回答 1

2
var folder = _Folders.FindBy(f => f.FolderId == id, f => f.Devices.SelectMany(x=>x.Nodes)).FirstOrDefault();
于 2013-08-27T10:13:55.180 回答