我需要帮助尝试组合两个IEnumerable查询.两个查询分别工作正常,但我需要找到一种方法来组合它们.
一个查询返回包含当前用户可以看到的所有实体书籍的结果.
第二个查询返回当前用户可以看到的所有数字图书.
真的,我只需要一个返回当前用户可以看到的物理和数字书籍的查询.
问题是我需要使用不同的方法来检查每种书籍类型的用户权限,我无法更改该部分.
谢谢!
var user = AllUsers.Current;
var BookFetchResults = rows.Select(r => new SearchResult(r))
.Where(t => t.BookType == "Physical")
.Select(r => r)
.Where(e => e.CanViewPhysical(e.PhysicalBookResult, user) );
return Ok(results);
var BookFetchResults = rows.Select(r => new SearchResult(r))
.Where(t => t.BookType == "Digital")
.Select(r => r)
.Where(e => e.CanViewDigital(e.DigitalBookResult, user) );
return Ok(results);
Run Code Online (Sandbox Code Playgroud)
您可以在查询Where语句中执行所有操作:
var BookFetchResults = rows.Select(r => new SearchResult(r))
.Where(t => (t.BookType == "Physical" && t.CanViewPhysical(e.PhysicalBookResult, user)) ||
(t.BookType == "Digital" && t.CanViewDigital(t.DigitalBookResult, user));
Run Code Online (Sandbox Code Playgroud)
你确实意识到线条.Select(r => r)什么都不做?所有这些行都返回与输入相同的值.如果你正在改变类型,你只需要做一个选择,就像你做的那样.Select(r => new SearchResult(r)).
| 归档时间: |
|
| 查看次数: |
502 次 |
| 最近记录: |