c# - 从.NET core中的IQueryable获取Sqlite SQL语句

标签 c# sqlite ef-core-2.0 ef-core-2.1 ef-core-2.2

我的 .NET Core 控制台应用程序连接到 sqlite 数据库

<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="3.0.0-preview4.19176.6" />

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) {
   string connectionString = "Data Source=\\mydb.db;";
   optionsBuilder.UseSqlite(connectionString);
}

var q = dbc.mytable.Select(x => x);

如何获取 q 使用的底层 SQL 查询?

如果我尝试 q.ToString() 我得到:

"Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable`1[MyProj.mytable]"

有什么帮助吗?

最佳答案

假设您的 IQueryable 实例符合您的示例:

var q = dbc.mytable.Select(x => x);  // your sample IQueryable object

对于 EF Core 之前的 EntityFramework 版本,这会起作用

var sqlQuery = ((System.Data.Objects.ObjectQuery)q).ToTraceString();

对于 EF 6,这会起作用

var sqlQuery = ((System.Data.Entity.Core.Objects.ObjectQuery)q).ToTraceString();

抱歉,我没有查看您之前提到 EF core 问题的标签。

在这种情况下,我发现 this文章提供了使用 EF Core 实现目标的一些选项。

关于c# - 从.NET core中的IQueryable获取Sqlite SQL语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55965017/

相关文章:

c# - 将字节 block 从字节数组中的一个位置移动到同一数组中的另一个位置的最快方法

java - 连接java jdbc sqlite 数据库文件路径

android - SQLiteDatabase.insertOrThrow 不抛出但不插入数据

c# - 在 EF 核心中启用迁移?

mysql - 错误: Cannot add or update a child row: a foreign key constraint fails

c# - 十进制三进制不起作用

c# - 如何在没有 NoWrap 的情况下跟踪 TextBox 中文本的结尾?

c# - 解析通过 asp :FileUpload 上传的 XML 文件

sql - 如果 SQL 找不到行则回退

c# - Linq 组键不是唯一的