1

これをジェネリック型に変換したい:

using System.Linq.Expression
using System.Collections.Generic

public IQueryable<T> AllIncluding(
                          params Expression<Func<T, object>>[] includeProperties)
{
    IQueryable<T> query = All;
    foreach (var includeProperty in includeProperties)
    {
        // query = query.Include(includeProperty);
    }
    return query;
}

しかし、それはうまくいかないようです、どうすればこれを行うことができますか?

4

2 に答える 2

2

Includeメソッドはでのみ使用できるためDbQuery<T>、直接キャストまたはasオペランドを使用してクエリをキャストするか、メソッドDbExtensions.Includeを使用する必要があります。

public IQueryable<T> AllIncluding(
    params Expression<Func<T, object>>[] includeProperties)
{
    IQueryable<T> query = All as DbQuery<T>;
    if (query == null)
    {
       return All;
    }

    foreach (var includeProperty in includeProperties)
    {
        // query = query.Include(includeProperty);
    }
    return query;
}
于 2012-06-01T15:46:33.217 に答える
1

for の使用を追加しSystem.Data.Entityます。

Entity Framework 4.1 には、厳密に型指定されたバージョンの が含まれていますInclude: http://msdn.microsoft.com/en-us/library/gg671236(VS.103).aspx

延長方法です。

于 2012-06-01T15:39:11.647 に答える