Jad*_*ias 10 .net c# expression linq-to-sql
我有一个过滤器,我在许多方法中使用:
Expression<Func<Child, bool>> filter = child => child.Status == 1;
Run Code Online (Sandbox Code Playgroud)
(实际上比这更复杂)
我必须做以下事情
return db.Parents.Where(parent => parent.Status == 1 &&
parent.Child.Status == 1);
Run Code Online (Sandbox Code Playgroud)
条件与上面的过滤器相同.
我想在这个方法中重用过滤器.但我不知道怎么做.我试过了
return db.Parents.Where(parent => parent.Status == 1 &&
filter(parent.Child));
Run Code Online (Sandbox Code Playgroud)
但表达式不能用作方法
如果您想组合表达式并且仍然能够使用 linq-to-sql,您可能需要看看LinqKit。它会进入您的表达式并在 sql 转换之前用其内容替换所有函数调用。
这样就可以直接使用了
return db.Parents
.AsExpandable()
.Where(parent => parent.Status == 1 && filter(parent.Child));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21483 次 |
| 最近记录: |