gpt4 book ai didi

c# - SQL 的 LINQ 表达式中的空检查

转载 作者:行者123 更新时间:2023-11-30 14:33:49 25 4
gpt4 key购买 nike

我的任务是为 Automapper 创建 LINQ 表达式,它必须能够转换为 SQL 表达式。这意味着没有方法调用,这是我遇到问题的地方。

我有一条记录,其中包含两列相关信息 - ProposedStartDateActualStartDate。我想获取 ActualStartDate(如果存在),如果为 null,则获取 ProposedStartDate

     .ForMember(d => d.StartDate, opt => opt.MapFrom(s => (from foo in s.foo
orderby foo.ProposedStartDate ascending
select foo.ProposedStartDate).LastOrDefault()))

到目前为止,我在那里,但不确定如何检查空值并以安全的方式提取 ActualStartDate。任何帮助都会很棒。

谢谢。

最佳答案

只需使用 ?? 运算符。它在 sql 端被翻译成 COALESCE

.ForMember(d => d.StartDate, opt => opt.MapFrom(s => (from foo in s.foo
orderby foo.ActualStartDate??foo.ProposedStartDate ascending
select foo.ActualStartDate??foo.ProposedStartDate).LastOrDefault()))

关于c# - SQL 的 LINQ 表达式中的空检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15407092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com