【问题标题】:How to do this query in EF Core?如何在 EF Core 中执行此查询?
【发布时间】:2023-03-19 08:38:02
【问题描述】:

我需要在 ef core 中做这个查询:

count(cmt.CaptureMethodId) as Total,
sum(case when DeactivateDate is null then 1 else 0 end) as Active,
sum(case when DeactivateDate is not null then 1 else 0 end) as Inactive
from [dbo].[CaptureMethodTerminals] cmt
join [dbo].[MerchantCaptureMethod] mcm
on cmt.CaptureMethodId = mcm.CaptureMethodId
where mcm.ClientMerchantId in ('00020', '00025')

【问题讨论】:

标签: c# sql entity-framework-core ef-core-2.0


【解决方案1】:

类似的东西

const ClientMerchantIds = new string[] {"00020", "00025"};
var cmt = dbContext.CaptureMethodTerminals.Where(x => ClientMerchantIds.Contains(x.CaptureMethod.ClientMerchantId));
var Total = cmt.Count();
var Active = cmt.Count(x => x.DeactivateDate == null);
var Inactive = cmt.Count(x => x.DeactivateDate != null);

【讨论】:

  • 糟糕,通过常量学习GroupBy。
  • 很好,感谢您的指点 ^^ 无论如何,这个可怜的问题的答案是个笑话,但学习新东西总是很高兴!
  • 新手得到这样的解决方案并投入到实际项目中。
  • 不像客户会关心的那样,但我明白你的意思。我正在研究这个正确的自动取款机,愿意学习。我从未声称自己是专家,但新手可以向新手学习 ;-)
  • 其实问题还不错,很难做出正确的搜索请求来找到解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-22
  • 1970-01-01
  • 2021-07-04
  • 2011-07-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多