我的 .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/