7

Includeinput から s を動的に追加したいparams[]。これどうやってするの?

これは私のコードです

IQueryable<Work> query = this.ObjectContext.Works
    .Include("EmployeeSender.Person")
    .Include("EmployeeReceiver.Person")
    .Include("WorkCode")
    .Include("WorkFlowStep.WorkFlowFormState")
    .Include("WorkFlow")
    .Include("WorkRoot.EmployeeSender.Person")
    .Include("WorkParent");
4

3 に答える 3

8

ループでは、たとえば次のようになります。

IQueryable<Work> query = null;  

query = this.ObjectContext.Works;
foreach (var param in params)
{
    query = query.Include(param);
}
var result = query.ToList();

Christian Dietz が述べたように、これを拡張メソッドに入れて再利用可能にすることができます。

于 2013-04-17T07:45:27.290 に答える
3

次の質問で、L-Three の回答を拡張メソッドと組み合わせることができます。

Entity Framework を使用してビューに参加するときに .Include() を使用する

public static IQueryable<T> Include<T>(this IQueryable<T> sequence, params string[] includes) {
    var objectQuery = sequence as ObjectQuery<T>;
    if (objectQuery != null){
        foreach(item in includes){
             objectQuery.Include(item);
        }
        return objectQuery;
    }
    return sequence;
}

次に、次のようなインクルードを使用できるはずです。

IQueryable<Work> query = null;  

query = this.ObjectContext.Works.Include("Something", "Whatever");
于 2013-04-17T07:53:40.120 に答える