2011-06-14 12 views
1

署名Expression<Func<T, bool>> Foo<T>()のメソッドを作成したいと思います。私のクラスUはTから継承しています。この代理人にU固有の処理を含めたいと思います。問題は、Tを暗黙的にUに変換できないことです。このメソッドでU固有のプロパティにアクセスできる方法はありますか?デリゲートの派生型の機能

合併症:私も処理したいタイプのV:Tを持っているので、シグネチャでTをUに置き換えるだけでは分散を利用できません。

+0

必要な機能のいくつかをタイプ「U」でタイプ「T」に移動する必要があるように思えます。 –

+0

残念ながら、私は、EFの子供には識別器の列がマッピングされていなければならないという事実のためにはできません: -/ – kappasims

+0

あなたのメソッドで 'T'を' U'に明示的に変換できないのはなぜですか? – svick

答えて

0

私は別々の過負荷を使用して終了しました:()、(myVar)T:U、(myvar、myvar2)ここで、T:V。それはトリックを行い、それぞれのパラメータは、エンティティプロパティを使用します。

0

簡単なアプローチは、TとUの両方がそれを継承する(使用する)インタフェースを定義することです。

+0

Uのフィールドにアクセスするために、暗にUに変換する必要がありますか? – kappasims

+1

私はちょっと混乱しています、Tはあなたのオブジェクトの1つを表していますか、それは一般的なオブジェクトの略ですか? –

+0

Tはトップレベルのクラスです。私はメソッドのU固有のプロパティにアクセスできるようにしたい。インターフェイスを追加すると、UのプロパティにアクセスするためにTをUにキャストする必要があります。または、TにUのプロパティを持たないため、余計な共有Uプロパティを実装する必要があります。 – kappasims

関連する問題