2
私はうまく書き込むために悩んでいるL2Sリポジトリクエリを持っています。それは 連鎖されたlinq-to-sqlクエリ式のヌル値の扱い
_orderRepository
.GetAllByFilter(o => o.CustomerId == id)
.Select(o =>
new CustomerOrderRecord
(
o.Id,
o.PartNumber,
o.Date
// ... etc, more order details
/* Here I need the last DateTime? the customer placed
an order for this item, which might be null.
So I end up with the following horrible part of
the query */
o.Customer.CustomerOrderRecords
.Where(x => x.PartNumber == o.PartNumber)
.OrderByDescending(x => x.Date).FirstOrDefault()
== null ? null :
o.Customer.CustomerOrderRecords
.Where(x => x.PartNumber == o.PartNumber)
.OrderByDescending(x => x.Date).First().Date;
)).ToList();
だからうまくいけば、あなたが
LastOrdered
値を受信したときに、私がnullチェックを行うために二回だけで全体の問合せの連鎖を書くことだ問題を見ることができます...のようになります。
GetAllByFilter
がIQueryable
を返すので、これはインラインで書かれている必要があります(私は思う)。
select文で中間変数を使用しようとしたので、次のようなものがありましたが、コンパイルするようなものは得られませんでした。
この問題を解決する構文トリックはありますか?
は、なぜ私はそのように書いて考えていませんでしたの!?とても簡単!ありがとう:) – fearofawhackplanet