私は、Productが複数のPriceDropを持つモデルを持っています。私は最新の価格下落の製品のリストを生成しようとしています。LINQ Select()関数はロードされた値を破棄します(loadoptions)
最新の価格がロードされた製品で降下取得することは十分に簡単である、と私はそれを起動するための最良の方法だろうと思った:
dlo.LoadWith<PriceDrop>(pd => pd.Product);
db.LoadOptions = dlo;
return db.PriceDrops.OrderBy(d=>d.CreatedTime);
は、最近の価格下落のリストのための素晴らしい作品が、私はしたいです製品のリスト「.Select(d => d.Product)」を追加すると、完璧な製品リストが返されますが、これらの商品はPriceDropsに関連付けられなくなりました。つまり、製品の.HasLoadedOrAssignedValuesを呼び出すと、falseが返されます。私がPrice Dropsを調べようとすると、彼らは彼らのためにDBに戻ろうとします。
この問題を回避する方法はありますか、または「選択」修飾語を使用せずに「製品」から始まるクエリを作成する必要がありますか?私はそれを避けようとしていました。PriceDropsのリストが必要な場合があり、できるだけ多くのロジックを再利用したかったからです(わかりやすくするために、上記のサンプルからwhere節と他のフィルタコードを除外しました)。
おかげで、 トム
ありがとう、私はそれをやります。商品を照会しているときにPriceDropsを照会していたときに、同じフィルタリングロジック(複数のwhere節)を再利用したかったので、私はそれを避けようとしていました。わかりやすくするために、これらの節を省いた。 –
私はあなたがまだフィルタリングロジックを表す共有Expressionインスタンスを渡して、適切な場所でそれらを使うことができると思います。 – Avish