什么是 SqlExpressionVisitor
What is SqlExpressionVisitor
我是ServiceStack & OrmLite的新手,工作中经常遇到SqlExpressionVisitor
我的问题是:
它基本上是什么?使用它有什么好处?我可以从中获取原始字符串查询吗?
您有 Enumartion,您可以在其上执行 Linq 查询:Where、OrderBy、Skip、Take。这通过枚举,returns 你得到一个可枚举的结果。
使用 ORM Lite(和 Entity framework)您也可以这样做。但是他们不使用 IEnumerable,而是使用 IQuerably。此接口为您提供与这些 LINQ 查询相同的用法,但在幕后,这些查询并未编译为 DLL 代码。相反,它们被保存为 Expressions
.
SqlExpressionVisitor
读取此表达式并尝试将其转换为 SQL 查询,可以执行并返回此 IQuerable<T>
的 IEnumerable<T>
,这是查询结果列表。
您也可以通过这种方式构建自己的 IQueryable LINQ 提供程序:https://msdn.microsoft.com/en-us/library/bb546158.aspx(用于第三方 api 或其他数据库)。
我是ServiceStack & OrmLite的新手,工作中经常遇到SqlExpressionVisitor
我的问题是:
它基本上是什么?使用它有什么好处?我可以从中获取原始字符串查询吗?
您有 Enumartion,您可以在其上执行 Linq 查询:Where、OrderBy、Skip、Take。这通过枚举,returns 你得到一个可枚举的结果。
使用 ORM Lite(和 Entity framework)您也可以这样做。但是他们不使用 IEnumerable,而是使用 IQuerably。此接口为您提供与这些 LINQ 查询相同的用法,但在幕后,这些查询并未编译为 DLL 代码。相反,它们被保存为 Expressions
.
SqlExpressionVisitor
读取此表达式并尝试将其转换为 SQL 查询,可以执行并返回此 IQuerable<T>
的 IEnumerable<T>
,这是查询结果列表。
您也可以通过这种方式构建自己的 IQueryable LINQ 提供程序:https://msdn.microsoft.com/en-us/library/bb546158.aspx(用于第三方 api 或其他数据库)。