我为代码优先实体模型编写了以下编译查询。但是,我需要帮助才能正确编译。下面是我的类的代码,然后是我编写的用于查询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);
无法将lambda表达式转换为委托类型'System.Func&gt;'因为块中的某些返回类型不能隐式转换为委托返回类型
答案 0 :(得分:0)
我找到了答案。
1)DbContext没有编译查询支持 不幸的是,由于我们在.NET Framework 4.0中提供的编译查询功能存在一些技术限制,我们无法通过DbContext API支持编译查询。我们意识到这是一个痛苦的限制,并将在下一个版本中实现这一点。