首页 > 解决方案 > 如何将 Dapper LINQ 与 TableDirect(无嵌入式 SQL)与 ORACLE 一起使用?

问题描述

我尝试了 DapperExtensions、Dapper.Extensions.Linq 和 linq2dapper 无济于事。我会尝试Dapper.SimpleCRUD-with-Oracle。我可能会改用存储过程来解决。我想不使用TableDirect嵌入式 SQL 语句。如何将 Dapper 和 Linq 与 a 一起使用TableDirect?或者,如何在TableDirect没有嵌入式 SQL 的情况下使用并过滤表?

以下是我的问题:

如何将 Dapper LINQ 与 TableDirect(无嵌入式 SQL)与 ORACLE 一起使用?

标签: linqdapperdapper-extensionsdapper-contribdapper-simplecrud

解决方案


您可以使用简单的 Dapper 来实现这一点。例如,看看 Dapper 的以下代码:

public static IEnumerable<T> Query<T>(this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, bool buffered = true, int? commandTimeout = default(int?), CommandType? commandType = default(CommandType?));

看最后一个commandType参数。它支持TableDirect您正在寻找的价值。

至于您提到的 Dapper 的其他扩展,我认为他们不会支持它。我确定 Dapper Extensions 不支持它;不确定其他人。

这是因为,这些扩展是基于 Dapper 编写的基本查询生成器。因此,您正在使用它们来生成查询,在这种情况下,该参数值将/应该是Text. 如果您想使用其他值,请绕过扩展并使用简单的 Dapper。

如果您只想提供表名或存储过程名,为什么要使用查询生成器?只需使用 Dapper。


推荐阅读