Tim*_*Tim 3 c# linq linq-to-entities expression automapper
我的任务是为Automapper创建LINQ表达式,它必须能够转换为SQL表达式.这意味着没有方法调用,这是我遇到问题的地方.
我有两列感兴趣的记录 - ProposedStartDate和ActualStartDate.我想得到ActualStartDate它是否存在,如果为null然后得到ProposedStartDate.
.ForMember(d => d.StartDate, opt => opt.MapFrom(s => (from foo in s.foo
orderby foo.ProposedStartDate ascending
select foo.ProposedStartDate).LastOrDefault()))
Run Code Online (Sandbox Code Playgroud)
到目前为止,我在那里,但不确定如何检查空值并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()))
Run Code Online (Sandbox Code Playgroud)