2009-06-15 25 views
4

私は1に2ラムダ式を組み合わせることができるようにする必要があるでしょう:プロパティパスにラムダ式を組み合わせ

これは、タイプセーフな(EF用)が含まへの拡張を作成するために、私に役立つであろう。

今、あなたが行うことができます:

context.House 
.Include(x => x.Doors.Doorknobs) 

私は別のメソッドに上記の文を分割することができるようにしたいと思います。

私はに たい IncludeDoorKnobs(クエリ、expressionFromRoot、expressionFromCurrentToChild)次に

よう

何か - クエリ に組み合わせた式を含める - (現在の)余分なチャイルズを含め、そのクエリ へ - 他のコール木の別の部分を含む同様の方法。

ラムダさんの私の知識は明らかに短い来て、これは次のようになりLINQツーSQLで

答えて

1

...私は本当にすぐに彼らに取得する必要があると思いますが、今のところ、私はSOFカントー頼る必要があり些細なこと。あなたはちょうどExpression.Invokeを使用して、指定された点で既存の部分式(パラメータ置換あり)を使用するよう指示します。しかし、EFはこれをサポートしていない(またはチェックしなかった)。

残念ながら、の2つの式を組み合わせるプロセスは、なしです。複雑です。基本的に内部ツリーを完全に再構築し、パラメータのようなものを手作業で置き換える必要があります。私はこれを行ったいくつかのコードを持っていましたが、それは単純ではありません(それは "手"ではありません)。

しかし、私はそれが本当に複雑に価値があるのでしょうか?

+0

いいえ、それはありません。だから、私はこれが答にふさわしいと思います:-) – Bertvan