我正在使用相同的查询才能正常工作。然后我决定使用编译查询。所以我不得不对代码做一些更改。
现在当我尝试执行代码时,我收到错误消息“用于查询运算符的不支持的重载'Where'。 我从“approvalHelper.GetWhereClauseForApprovalSimpleSearch();”生成的where子句已经过测试并且工作正常。 仅对我的代码
中显示的编译查询部分不起作用// Complied Query Class
public static class CompliedQuery
{
public static Func<GDataContext, Expression<Func<View_ApprovalSimple, bool>>, IQueryable<View_ApprovalSimple>> getApprovalSimple =
CompiledQuery.Compile<GDataContext, Expression<Func<View_ApprovalSimple, bool>>, IQueryable<View_ApprovalSimple>>(
(db, whereclause) => (from results in db.View_ApprovalSimples.AsExpandable().Where(whereclause)
select results));
}
// this is what is passed into the where clause; Body = {(vas.siteId = 1)}
//the Calling code
public static List<View_ApprovalSimple> GetApprovalSimple(ApprovalsSearchHelperClass _approvalHelper)
{
Expression<Func<View_ApprovalSimple, bool>> whrClause = approvalHelper.GetWhereClauseForApprovalSimpleSearch();
//whrclause; Body = {(vas.siteId = 1)}
try
{
using (GDataContext db = new GDataContext())
{
if (whrClause != null)
{
var varResults = CompliedQuery.getApprovalSimple(db, whrClause);
return varResults.ToList();
}
}
}
catch (Exception ex)
{
// code to handle error
}
finally
{
}
return null;
}
知道我可能需要实施哪些新变化?
提前致谢。
答案 0 :(得分:0)
检查命名空间(首先将它们从CompliedQuery
复制到调用类)。
答案 1 :(得分:0)
首先,我对此有点怀疑,用完了选项,所以我终于尝试了它确实有效。 请点击链接查看答案 Steve's Blog 伟大的工作史蒂夫。