はこの時点で注文の現在のステータスを表示します。これにより、まだ出荷されていないすべての注文と、今日出荷された注文が返されます。
データ構造:
OrderHeader (1) -> (many) ShippingContainerHeaders
以下の私のコードのコピー。もともとはoh.CreatedOn
の部分で作業していましたが、これはコメントアウトされています。しかし、その要件は洗練され、その代わりに結合テーブルShippingContainerHeader.ShipDateTimeUTC
の特定の出荷日を使用して出荷されたものを考慮する必要があります。その注文の船舶容器のいずれかにShipDateTimeUTC
のTodayがある場合は、それを含めます。しかし、私は以下の持っているものコンパイルして、このエラー与えません。
Cannot compare elements of type 'System.Collections.Generic.ICollection`1[[OTIS.Domain.InventoryMgmt.ShippingContainerHeader, OTIS.Domain, Version=1.5.6054.27019, Culture=neutral, PublicKeyToken=null]]'. Only primitive types, enumeration types and entity types are supported.
:私は
.Where
.Any
に変更すると
Error 17 Type of conditional expression cannot be determined because there is no implicit conversion between 'System.Collections.Generic.IEnumerable<OTIS.Domain.InventoryMgmt.ShippingContainerHeader>' and 'bool'
return orderHeaderRepository
.SearchFor(oh =>
oh.FacilityId == intFacilityId
&& oh.OrderType == OrderHeader.OrderTypes.ShipOrder.ToString()
&& (
oh.StatusId >= (int)OrderHeader.Statuses.Shipped && oh.ShippingContainerHeaders != null
? oh.ShippingContainerHeaders.Where(sh => sh.ShipDateTimeUTC >= startDateTime) //(oh.CreatedOn >= startDateTime) && (oh.CreatedOn <= endDateTime)
: oh.Id > 0
)
)
UPDATE
を、私はこのエラーを取得します
私のソリューション
私が達成しようとしていたことをする方法がないという点で受け入れられた答えは具体的ではありますが、代わりの解決法はありません。結局、最初にUNIONクエリを作成して、出荷されていないすべての注文と出荷された注文を最初に照会し、2つの照会で共用を実行しなければなりませんでした。
問題が何ですか?質問はなんですか? –
@IvanStoev申し訳ありませんが、正確なエラーメッセージを追加しました。それはコンパイルされません。 –
'Where'を' Any'に変更する –