在 Linq to Entities 查询中编写 if then else
Writing if then else in Linq to Entities query
我写了下面的代码来计算一个Document
到:
var currentStationId = GetCurrentStation();
var result = dbContext
.Documents
.Select(x=>
new MyDTO{
...,
ReferCounts = x.DocumentStationHistories
.Count(t => t.ToStationId == currentStationId))
}
现在我想改变计算机制 ReferCounts
:
if(currentStationId == 1) ReferCounts = x.DocumentStationHistories
.Count(t => t.ToStationId == currentStationId &&
t.FromStationId != t.ToStationId))
else
ReferCounts = x.DocumentStationHistories
.Count(t => t.ToStationId == currentStationId))
如何在我的 linq to entities 查询中使用此代码?
这是 ternary if 语法的示例。
var result = dbContext
.Documents
.Select(x=>
new MyDTO{
...,
ReferCounts = (currentStationId == 1) ?
x.DocumentStationHistories.Count(t => t.ToStationId == currentStationId && t.FromStationId != t.ToStationId))
: x.DocumentStationHistories.Count(t => t.ToStationId == currentStationId))
}
我写了下面的代码来计算一个Document
到:
var currentStationId = GetCurrentStation();
var result = dbContext
.Documents
.Select(x=>
new MyDTO{
...,
ReferCounts = x.DocumentStationHistories
.Count(t => t.ToStationId == currentStationId))
}
现在我想改变计算机制 ReferCounts
:
if(currentStationId == 1) ReferCounts = x.DocumentStationHistories
.Count(t => t.ToStationId == currentStationId &&
t.FromStationId != t.ToStationId))
else
ReferCounts = x.DocumentStationHistories
.Count(t => t.ToStationId == currentStationId))
如何在我的 linq to entities 查询中使用此代码?
这是 ternary if 语法的示例。
var result = dbContext
.Documents
.Select(x=>
new MyDTO{
...,
ReferCounts = (currentStationId == 1) ?
x.DocumentStationHistories.Count(t => t.ToStationId == currentStationId && t.FromStationId != t.ToStationId))
: x.DocumentStationHistories.Count(t => t.ToStationId == currentStationId))
}