where句で使用するメソッドに文字列としてLinqクエリを送信しようとしています。 IEnumerableはこのためには機能しないので、私はIEnumerableをIQueryableに変換しましたが、まだそれはエラーをスローします。次のコードです:linq where節に文字列を使用する方法は?
public static void FilterData(string Query)
{
if((List<MemberMaintenanceData>)HttpContext.Current.Session["Allmembers"] != null)
{
//Get the IEnumerable object colection from session
var data = (List<MemberMaintenanceData>) HttpContext.Current.Session["Allmembers"];
//Convert it to IQueryable
IQueryable<MemberMaintenanceData> queryData = data.AsQueryable();
//This line doesn't compile!!
queryData = queryData.Where(Query);
HttpContext.Current.Session["Allmembers"] = queryData.AsEnumerable().ToList();
}
}
私のようなクラスを考えると、クエリ
ダイナミックlinqライブラリは、文字列ではなく整数に対してのみ機能します。また、少なくとも文字列を使用したサンプルは見ていません。この件に関しては非常に多くの記事やブログがあり、それらのすべてが例として整数を使用しています!私が照会しなければならないAccountIdは文字列です。 – user466663
「文字列ではなく整数のみで動作する」という意味はよく分かりません。動的クエリ言語のドキュメンテーションを見ると、intだけでなくあらゆるタイプで動作することがわかります。私が提案したリンクの最上部にあるAPIドキュメンテーションのスクリーンショットでは、文字列を使用する例を示しています。私は少しこれを表示するために私の答えを更新しました。 –