EF
IQueryable.ToString()
返回IQueryable类型, 里面封装的就是生成的SQL脚本,设置断点queryable = DataContext.Set<T>().Where<T>(whereLambda).AsQueryable();
queryable 右键快速监视, 或者ToString()返回字符串类型直接打印输出都能看到sql脚本。
ObjectQuery.ToTraceString()
var query = db.TxtRes.Join(db.LangRes, a => new { id1 = a.ResID, id2 = a.ResID }, b => new { id1=b.ID,id2=b.ID }, (a, b) => new { a.ID, a.ResID, a.Lang, b.Key });
var objectQuery = query as System.Data.Objects.ObjectQuery;
return objectQuery.ToTraceString(); //获取sql语句
EF Core
LoggerFactory
在Startup加上
public static readonly LoggerFactory MyLoggerFactory = new LoggerFactory(new[] {
new Microsoft.Extensions.Logging.Debug.DebugLoggerProvider()
});
然后在ConfigureServices里添加数据库上下文的时候 加上.UseLoggerFactory(MyLoggerFactory);即可
//添加mysql数据库上下文
services.AddDbContext<HotelProdDbContext>(Options =>
{
Options.UseMySql(Configuration.GetConnectionString("MysqlHotelProd")).UseLoggerFactory(MyLoggerFactory);
});
通用
SQL Server Profiler
SSMS - 工具 - SQL Server Profiler 上查看执行的SQL语句。
引用
获取linq生成的sql语句
C# 查看EF生成的SQL语句
EF Core 查看linq to sql生成的sql
ABP增加记录EFCore 生成数据库脚本日志到新的txt文件
版权声明:本文为weixin_44231544原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。