3

私は Automapper 用の LINQ 式を作成する任務を負っていますが、これは SQL 式に変換できる必要があります。これは、私が問題を抱えているメソッド呼び出しがないことを意味します。

関心のある 2 つの列 ( と ) を持つレコードが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()))

これまでのところ、私はそこにいますが、null をチェックしActualStartDateて安全な方法でプルする方法がわかりません。どんな助けでも素晴らしいでしょう。

ありがとう。

4

1 に答える 1

6

??演算子を使用するだけです。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()))
于 2013-03-14T10:55:51.807 に答える