什么是SqlExpressionVisitor

问题描述 投票:0回答:1

我是ServiceStack和OrmLite的新手,在工作中,我经常遇到

SqlExpressionVisitor

我的问题是:

它基本上是什么?使用它有什么好处?我可以从中获取原始字符串查询吗?

c# servicestack ormlite-servicestack
1个回答
2
投票

您有一个枚举,您可以在其上执行 Linq 查询:

Where
OrderBy
Skip
Take
。这将遍历枚举并返回结果枚举。

使用 ORM Lite(和实体框架)您也可以做到这一点。但他们没有使用

IEnumerable
,而是使用
IQueryable
。此接口为您提供与这些 LINQ 查询相同的用法,但在幕后它们不会编译为 DLL 代码。相反,它们被保留为
Expressions

SqlExpressionVisitor
读取此表达式并尝试将其转换为 SQL 查询,该查询可以执行并返回此
IEnumerable<T>
IQueryable<T>
,这是查询结果的列表。

您还可以通过这种方式构建您自己的

IQueryable
LINQ 提供程序:https://msdn.microsoft.com/en-us/library/bb546158.aspx(适用于第三方 API 或其他数据库)。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.