C# SQL的LINQ表达式中的Null检查
我的任务是为Automapper创建LINQ表达式,它必须能够转换为SQL表达式。这意味着没有方法调用,这就是我遇到的问题 我有一个记录,有两列感兴趣-C# SQL的LINQ表达式中的Null检查,c#,linq,linq-to-entities,expression,automapper,C#,Linq,Linq To Entities,Expression,Automapper,我的任务是为Automapper创建LINQ表达式,它必须能够转换为SQL表达式。这意味着没有方法调用,这就是我遇到的问题 我有一个记录,有两列感兴趣-ProposedStartDate和ActualStartDate。我想获取ActualStartDate如果它存在,如果为空,则获取ProposedStartDate .ForMember(d => d.StartDate, opt => opt.MapFrom(s => (from foo in s.foo
ProposedStartDate
和ActualStartDate
。我想获取ActualStartDate
如果它存在,如果为空,则获取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()))
那很容易!我以为??然后呢操作不起作用。