dataobjects-net
dataobjects-net copied to clipboard
Support parameters defined outside of CachingQuery closure in compiled query execution
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()));
}