在 LINQ C# 中使用 OR 条件
Using OR condition in LINQ C#
我在 LINQ c#
中编写了以下 SQL 查询
SELECT max(creation_date) from TRS where approval_status='APPROVED' and transaction_type in ('Sale','PRE')
我尝试在列表中构建以下查询,如下所示
var session = txns.Where(a => a.transaction_type.Equals("SALE"))
.Where(a => a.transaction_type.Equals("PRE"))
.Where(a => a.approval_status.Equals("APPROVED"))
.OrderByDescending(a => a.creation_date).Select(a => a.creation_date).FirstOrDefault();
上面的查询没有工作,因为我不确定如何在 LINQ c# 中使用 Max 和 OR 条件
我可以知道更好的解决方案吗?
var session = txns
.Where(a => a.transaction_type.Equals("SALE") || a.transaction_type.Equals("PRE"))
.Where(a => a.approval_status.Equals("APPROVED"))
.Select(a=>a.creation_date).Max();
或
var txtypes=new[]{"SALE","PRE"};
var session = txns
.Where(a => txtypes.Contains(a.transaction_type))
.Where(a => a.approval_status.Equals("APPROVED"))
.Select(a=>a.creation_date).Max();
或
var session = txns
.Where(a => a.transaction_type.Equals("SALE") || a.transaction_type.Equals("PRE"))
.Where(a => a.approval_status.Equals("APPROVED"))
.Max(a=>a.creation_date);
您可以使用 ||
运算符来组合您的两个条件,或者您可以使用 Contains
来生成类似 SELECT IN (....)
的查询
var transcationTypes = new[] {"SALE", "PRE"};
var sessions = txns.Where(a => transcationTypes.Contains(a.transaction_type)
&& a.approval_status == "APPROVED")
.Select(a => a.creation_date)
.Max();
过滤掉结果后,您可以使用 Max
到 select 最大值。
我在 LINQ c#
中编写了以下 SQL 查询 SELECT max(creation_date) from TRS where approval_status='APPROVED' and transaction_type in ('Sale','PRE')
我尝试在列表中构建以下查询,如下所示
var session = txns.Where(a => a.transaction_type.Equals("SALE"))
.Where(a => a.transaction_type.Equals("PRE"))
.Where(a => a.approval_status.Equals("APPROVED"))
.OrderByDescending(a => a.creation_date).Select(a => a.creation_date).FirstOrDefault();
上面的查询没有工作,因为我不确定如何在 LINQ c# 中使用 Max 和 OR 条件
我可以知道更好的解决方案吗?
var session = txns
.Where(a => a.transaction_type.Equals("SALE") || a.transaction_type.Equals("PRE"))
.Where(a => a.approval_status.Equals("APPROVED"))
.Select(a=>a.creation_date).Max();
或
var txtypes=new[]{"SALE","PRE"};
var session = txns
.Where(a => txtypes.Contains(a.transaction_type))
.Where(a => a.approval_status.Equals("APPROVED"))
.Select(a=>a.creation_date).Max();
或
var session = txns
.Where(a => a.transaction_type.Equals("SALE") || a.transaction_type.Equals("PRE"))
.Where(a => a.approval_status.Equals("APPROVED"))
.Max(a=>a.creation_date);
您可以使用 ||
运算符来组合您的两个条件,或者您可以使用 Contains
来生成类似 SELECT IN (....)
var transcationTypes = new[] {"SALE", "PRE"};
var sessions = txns.Where(a => transcationTypes.Contains(a.transaction_type)
&& a.approval_status == "APPROVED")
.Select(a => a.creation_date)
.Max();
过滤掉结果后,您可以使用 Max
到 select 最大值。