吴桥县网站建设,房产门户网站模板,api导入wordpress,网站建设朋友圈素材咨询区 PC.#xff1a;我正在 MVC5 项目中使用 EF 6.0#xff0c;为了方便调试和获取性能指标#xff0c;我想记录 EF6 中的所有 sql 日志。在 Java/Hibernate 中#xff0c;我只需要设置 hibernate.show_sqltrue 就可以了#xff0c;不知道在 EF 中该如何设置等价操作呢… 咨询区 PC.我正在 MVC5 项目中使用 EF 6.0为了方便调试和获取性能指标我想记录 EF6 中的所有 sql 日志。在 Java/Hibernate 中我只需要设置 hibernate.show_sqltrue 就可以了不知道在 EF 中该如何设置等价操作呢 回答区 AndrewEF 中有一个可接收 string 参数的委托方法 DbContext.Database.Log 一般来说只需要将实现 TextWriter 或其子类的 Write 方法赋上去就可以了这样EF所有的日志都会被送到该 Write 中比如下面的代码就是将日志输送到 Console 上。
using (var context new BlogContext())
{context.Database.Log Console.Write;// Your code here...
}OgglasEF Core 的日志记录已经和 .NET Core 的日志引擎整合了下面的例子展示了如何将日志输出到 Console 上。
public class SchoolContext : DbContext
{//static LoggerFactory objectpublic static readonly ILoggerFactory loggerFactory new LoggerFactory(new[] {new ConsoleLoggerProvider((_, __) true, true)});//or// public static readonly ILoggerFactory loggerFactory new LoggerFactory().AddConsole((_,___) true);public SchoolContext():base(){}protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder){optionsBuilder.UseLoggerFactory(loggerFactory) //tie-up DbContext with LoggerFactory object.EnableSensitiveDataLogging() .UseSqlServer(Server.\SQLEXPRESS;DatabaseSchoolDB;Trusted_ConnectionTrue;);}public DbSetStudent Students { get; set; }
}点评区 小编貌似已经多年不再使用 EF 了不是因为不好而是因为太好了让我都忘记了如何写 SQL 了 ????????????可抬头跳到 C# 之外会 Linq 能不能跨领域我不知道会 SQL 那绝对可以跨领域 ,比如ESSparkKuduTidb .... 对了就连 RedisMongoDB 都有支持 SQL 的扩展插件 .... 醉了????。