实体框架(代码优先)C#
我有一个树结构,其节点采用一对多结构。
Node
|
\--- Children
我需要枚举所有的孩子(ICollection)。目前,这就是我查看代码的方式:
using (DBContext context = new DBContext()
{
parentNode = (from query in context.Tree
where query.IsSomeWayToIDTheParentNode
select query).ToArray();
}
var tree = SomeRecursiveTreeBuilderMethod(parentNode);
在此代码中,枚举了 parentNode 上的第一级 Children 属性,但未枚举实际子节点的 Children 属性,因此引发 ContextDisposed 异常。
我尝试将 .Include(inc => inc.Children) 添加到整个查询(在括号之后)和 context.Tree 之后,但没有运气。我可以很容易地在 using 语句中调用递归 'ChildEnumerator(parentNode)' 方法来强制枚举,但我觉得必须有更好的方法来确保对象和子对象(n-deep)都完全在转义上下文范围时填充。