How can I return asQueryable without a LoadSelect?

I am using the latest ServiceStack OrmLite (currently v4.5.6) with C #

I need to return asQueryable from a method, for example;

    using (IDbConnection databaseConnection = _databaseFactory.Open())
    {
        SqlExpression<T> sqlExpression = databaseConnection.From<T>();

        IQueryable<T> asQueryable = databaseConnection.LoadSelect(sqlExpression, include)
                                                      .AsQueryable();

        return asQueryable;
    }

But, as you can see, loadSelect already goes to the sql server like:
Select PARAMSetc from the table

So I just need IQueryable without going to sql server. I did this with the Entity Framework, here is the code;

public IQueryable<T> GetAll(Expression<Func<T, bool>> predicate)
{
    return _dbSet.Where(predicate);
}

And yes, I am writing some general repository wrapper, and I know that repository templates should not return IQueryable, because someone uses this method and can make performance errors, etc. This is not in my topic right now.

How can I return IQueryable using OrmLite?

+4
2

OrmLite API- - :

var results = db.Select<Poco>(x => x.Id == 1);

SqlExpression<T>, API, SQL, , LINQ, , API , :

var q = db.From<Track>()
    .Where(x => customYears.Contains(x.Year))
    .And(x => x.Name.Contains("A"))
    .GroupBy(x => x.Year)
    .OrderByDescending("Total")
    .ThenBy(x => x.Year)
    .Take(2);

var results = db.Select(q);

OrmLite IQueryable<T>, SQL IQueryable<T>, ORM, EF.

IQueryable<T> ORM - .NET List<T>, OrmLite, :

List<Poco> results = db.Select<Poco>();
IQueryable<Poco> queryable = results.AsQueryable();
+3

​​;

-, IQueryable Linq OrmLite, SQL . "" .

, "where sql", "anon types" sql, :

var results = dbCmd.Select<Poco>("Name = {0}", name);
var results = dbCmd.Where<Poco>("Name", name);
var results = dbCmd.Where<Poco>(new { Name = name });
var results = dbCmd.Select<Poco>("Select * from Poco Where Name = {0}", name);
var results = dbCmd.Query<Poco>("Select * from Poco Where Name = @name", new { name });

SqlBuilder @samsaffron: http://samsaffron.com/archive/2011/09/05/Digging+ourselves+out+of+the+mess+Linq-2-SQL+created

, , builder dbCmd, :

var count = dbCmd.QuerySingle<Poco>(count.RawSql, count.Parameters);
var rows = dbCmd.Query<Poco>(selector.RawSql, selector.Parameters);

Micro ORM , IQueryable, , .

+1

Source: https://habr.com/ru/post/1670707/


All Articles