0

コード ファースト エンティティ モデル用に、次のコンパイル済みクエリを作成しました。ただし、これを正しくコンパイルするには助けが必要です。以下は、私のクラスのコードと、この情報について BudgetContext オブジェクトをクエリするために作成したコンパイル済みクエリです。

[DataContract]
public class BudgetSummary : IBudgetSummary, IEntity
{
    public int Id{ get()}
    public int MDACode{ get; set; }

    public DateTime BudgetYear{ get; set; }

    public virtual IList<IBudgetItem> budgetitems{ get; set; }

}

public class BudgetContext : DbContext
{ 
    public DbSet<Post> Posts { get; set; }
    public DbSet<Comment> Comments { get; set; }
    public DbSet<BudgetItem> BudgetItems { get; set; }
    public DbSet<BudgetLineItem> BudgetLineItems { get; set; }
    public DbSet<IBudgetSummary> BudgetSummaries { get; set; }
    public DbSet<MDA> MDAs { get; set; }

}



    static readonly Func<BudgetContext, int, IQueryable<BudgetSummary>> FindBudgetSummaryCompiledQuery =
CompiledQuery.Compile<BudgetContext,int, IQueryable<BudgetSummary>>(
        (ctx, mdaID) => from budgetsummary in ctx.BudgetSummaries
                        where budgetsummary.MDACode >= mdaID
                        select budgetsummary);

ブロック内の戻り値の型の一部がデリゲートの戻り値の型に暗黙的に変換できないため、ラムダ式をデリゲート型 'System.Func>' に変換できません

4

1 に答える 1

0

私は答えを見つけました。

リンクhttp://blogs.msdn.com/b/adonet/archive/2011/03/02/ef-4-1-is-coming-dbcontext-api-amp-code-first-rtw.aspxによると

1) DbContext からのコンパイル済みクエリのサポートなし 残念ながら、.NET Framework 4.0 に同梱されているコンパイル済みクエリ機能には技術的な制限があるため、DbContext API を介してコンパイル済みクエリをサポートすることはできません。これは痛ましい制限であることを認識しており、次のリリースでこれを有効にするために取り組んでいきます。

于 2012-07-09T22:10:18.790 に答える