1

IQueryable を返すメソッドを作成する必要があり、tor は正確な型に依存します。それを取得するためにWHEREステートメントの後に使用できる基準を準備することは可能ですか?

例えば、if T == License i use "c.fkCustomer == Organization.Customer"

if T== People、私は"c.fkPeople== Organization.People"などを使用します。

XPQuery<T> cQuery = new XPQuery<T>(cSession);
IQueryable CurrQr = from c in cQuery 
                    where "c.fkCustomer == Organization.Customer" 
                    select c;

誰かが何かを提案できますか、この目標を達成する方法はありますか?

4

2 に答える 2

4

ここでは、動的なlinqではなく、ラムダを引数として使用する方がよいと思います。

public IQueriable<T> MyQuery<T>(Expression<Func<T, bool>> predicate)
{
    return new XPQuery<T>(cSession).Where(predicate)/*and any other bits you want at the moment this is a straight up where clause so kinda pointless*/;
}

次に、次のように呼び出すことができます。

MyQuery(c=> c.fkCustomer == Organization.Customer)

また

MyQuery(c=> c.fkPeople == Organization.People)
于 2012-12-22T09:45:18.940 に答える
1

はい、これは可能です。これを行う 1 つの方法は、ダイナミック クエリ ライブラリを使用することです。ダイナミック クエリ ライブラリは、その使用方法に関する詳細情報とともにここにあります: http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq -part-1-using-the-linq-dynamic-query-library.aspx

于 2012-12-22T09:33:19.800 に答える