Skip to content

Support parameters defined outside of CachingQuery closure in compiled query execution #125

Open
@denisbredikhin

Description

@denisbredikhin

With Query.Execute you can executed compiled query (so it should not be translated next time). You can also execute IQueryable using it, but you can't execute IQueryable constructed in other class.
So this works:

[Test]
public void TestSimpleQueryable()
{
  var name = "some_name";
  var ents = Query.All<Enterprise>().Where(q => q.Name== name);
  Assert.AreEqual(0, Query.Execute(() => ents.Count()));
}

But this doesn't:

private static class QueryableProvider
{
  public static IQueryable<Enterprise> GetEnterprisesByName(string name)
  {
    return Query.All<Enterprise>().Where(q => q.Name==name);
  }
}

[Test]
public void TestGeneratedQueryable()
{
  var name = "some_name";
  var ents = QueryableProvider.GetEnterprisesByName(name);
  Assert.AreEqual(0, Query.Execute(() => ents.Count()));
}

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions