Rob*_*one 4 c# t-sql linq sql-server asp.net-core
我正在尝试使用 LINQ 来获取值列表。
我有这样的代码:
var _context = _scope.ServiceProvider.GetRequiredService<VMContext>();
if (boolparameter)
{
var listCE = _context.Ce
.Where(x => x.VuId == element.VuId)
.Where(x => x.Score == 8)
.AsNoTracking()
.ToList();
}
else
{
var listCE = _context.Ce
.Where(x => x.VuId == element.VuId)
.AsNoTracking()
.ToList();
}
Run Code Online (Sandbox Code Playgroud)
取决于 boolparameter,我做一个查询或另一个。有没有办法使用带有条件的单个查询?就像是:
var listCE = _context.Ce
.Where(x => x.VuId == element.VuId)
.Where(x => boolparameter ? x.Score == 8 : true)
.AsNoTracking()
.ToList();
Run Code Online (Sandbox Code Playgroud)
C# Asp.NetCore SqlServer 2019 非常感谢!
小智 5
如果有效,您可以尝试以下代码:
var listCE = _context.Ce
.Where(x => x.VuId == element.VuId)
.Where(x => !boolparameter || x.Score == 8)
.AsNoTracking()
.ToList();
Run Code Online (Sandbox Code Playgroud)
这意味着如果boolparameter是false,x.Score 无关紧要,因为!false将等于true并且它满足 OR 条件。同样,如果boolparameter是true,那么x.score也将检查它是否等于 8。
或者也许有一个 Where 条件:
var listCE = _context.Ce
.Where(x => x.VuId == element.VuId && (!boolparameter || x.Score == 8))
.AsNoTracking()
.ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
143 次 |
| 最近记录: |