2017-11-20 18 views
2

私は文字列ベースのDynamic Linqを実行しており、入れ子のwhere句を適用する必要があります。Stringベースの動的Linq - 入れ子のWhere句

答えはhereです。ただし、2つの表の列には一致するIDがあります。私は以下のようなエイリアスやその他の方法で参照できるようにする必要があります:

rolesCollection 
.Where("AssignedUsers.Where(AssignedUsers.TypId == rolesCollection.TypId).Any()"); 

どのようにすればよいでしょうか?私はオブジェクトを渡す機能を持っていませんが、これは純粋に汎用API検索メソッドの文脈では文字列ベースのソリューションでなければなりません。これは私が必要とするものの単なる例です...私はコードに参加する能力を持っていません。私は、サンプルコードの文字列ベースの部分のソリューションを探しています。

+0

は、オプションに参加しますか? – Steve

+0

where節の文字列を使って結合を行うことができれば、そうです。良いアイデア。 – michaelb

+0

AssignedUsersオブジェクトを使用できますか? – Steve

答えて

0

AssignedUsersオブジェクトは、この理論的な例では、AssignedUsers_Typコレクションを持っている必要があり、あなたは単に、両方のテーブルから標準の列を参照することなく、以下参照することができます。

rolesCollection.Where("AssignedUsers_Typ.Any()"); 

解決策を使用して問題を解決できました。

0

このようなことが欲しいですか?

rolesCollection = rolesCollection.Where(x => assignedUsers.Any(t => t.TypId == x.TypId)).ToList(); 
+0

いいえ、私は上記の例の文字列部分でしか動作できません。私は伝統的なlinqを行うことはできません。 – michaelb