Ras*_*kov 2 c# entity-framework-6
如何包含在循环中?我想指定要包含在查询中的相关对象。
我有下一个功能
public IQueryable<TEntity> Include(Expression<Func<TEntity, object>>[] includes)
{
IQueryable<TEntity> result = null;
//two includes are ok:
//IQueryable<TEntity> result2 = null;
//if (includes.Count() > 1)
//{
//result2 = dbset.Include(includes[0]).Include(includes[1]);
//}
//include in loop is not ok:
foreach (var exp in includes)
{
result = dbset.Include(exp);
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
如果我取消注释注释代码,那么 result2 就可以了。但结果并不好。
奇怪的是,如果我一步一步地调试循环,在每次迭代中检查结果然后结果就可以了。但是,如果我没有一步一步地检查结果,其中包括仅用于最后一次表达的工作。
您知道为什么这不起作用以及如何解决吗?
编辑:这是修复:
result = dbset;
foreach (var exp in includes)
{
result = result.Include(exp);
}
Run Code Online (Sandbox Code Playgroud)
问题是,你保持覆盖的值result与单一的结果Include()上的呼叫dbSet。
您需要按如下方式连接这些调用:
foreach (var exp in includes)
{
result = result.Include(exp);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
691 次 |
| 最近记录: |