当前位置: 首页 > 面试题库 >

记录Entity Framework 5的SQL语句以进行数据库优先处理

夏兴生
2023-03-14
问题内容

我正在尝试使用Entity Framework Tracing Provider记录生成的SQL语句。

我将上下文类更改为以下内容:

public partial class MyDBContext: DbContext
{

    public MyDBContext(string nameOrConnectionString)
    : base(EFTracingProviderUtils.CreateTracedEntityConnection(nameOrConnectionString), true)
{
    // enable sql tracing
    ((IObjectContextAdapter) this).ObjectContext.EnableTracing();
}

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        throw new UnintentionalCodeFirstException();
    }

    //DbSets definition....
}

但这不会将SQL语句记录在“输出”窗口中…

我应该在课程中还是在web.config文件中添加更多内容?(我正在研究一个ASP.NET MVC 4项目)

我在以下帖子中使用该解决方案:实体框架4.1-EFTracingProvider

但是我做了一些我不知道它们是否重要的​​更改:

该类是局部的而不是抽象的,构造函数是公共的而不是受保护的…

我想念什么?


问题答案:

修改代码后,您需要像这样在web.config中启用跟踪:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.diagnostics>
    <sources>
      <source name="EntityFramework.NorthwindEntities" switchValue="All" />
    </sources>
  </system.diagnostics>
</configuration>

TraceSource的名称应为您的上下文名称,前缀为“
EntityFramework”。通过将设置为switchValue,确保在将应用程序部署到生产环境时禁用跟踪Off



 类似资料:
  • 主要内容:1 SHOW ENGINES,2 SHOW PROCESSLIST,3 SHOW STATUS LIKE ‘InnoDB_row_lock%’,4 SHOW ENGINE INNODB STATUS,5 SHOW INDEXS,6 ALTER TABLE xx ENGINE = INNODB,7 ANALYZE TABLE常见MySQL数据库优化的sql语句。 1 SHOW ENGINES 查看执行引擎以及默认引擎。 2 SHOW PROCESSLIST SHOW PROCESSLIS

  • 问题内容: 我有一个SQL Server 2008数据库和一个asp.net前端。 当用户当前正在编辑记录但不确定哪种是最好的方法时,我想实现一个锁定。 我的想法是为记录创建一列,并在用户拉出该记录时将其设置为true,这意味着所有其他用户都具有只读访问权限,直到第一个用户完成编辑为止。 但是,如果会话超时并且他/她从不保存/更新记录,该记录将保留为,表示其他人无法对其进行编辑,对吗? 如何实现某

  • CRUD CREATE TABLE CREATE TABLE `user` ( `id` INT AUTO_INCREMENT, `name` VARCHAR (20), PRIMARY KEY (`id`) ); VARCHAR记得指定长度。 UPDATE UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 INSERT INSERT INTO 表名称 VA

  • 问题内容: 我是Entity Framework 5的新手。我们的团队正在使用工作流。 在开始我的主要问题之前, 让我先向您展示我已经尝试过的东西 ( 所有时间的最终评语)。 是我创建的类,该类继承自,其中包含重写方法,该类也继承自。我遇到的问题之一是实体框架无法处理字段唯一性。我已经在他们的站点上阅读了有关使用Fluent API配置/映射属性和类型 的文章,但是找不到用于将属性设置为唯一的任何

  • 问题内容: 我正在为我的Web应用程序使用SQL Logger。我希望能够记录由用户与GUI交互触发的SQL查询。我在Spring环境中工作,与Maven和Mybatis一起工作。我将Web应用程序打包成一个战争,并将其部署到tomcat上。 我希望能够直接使用SQL来访问数据库。我可以尝试像在Log4j中那样使用SocketAppender / HTMLAppender,并发布查询,以便其他非S

  • 本文向大家介绍Mysql查询最近一条记录的sql语句(优化篇),包括了Mysql查询最近一条记录的sql语句(优化篇)的使用技巧和注意事项,需要的朋友参考一下 下策——查询出结果后将时间排序后取第一条 这样做虽然可以取出当前时间最近的一条记录,但是一次查询需要将表遍历一遍,对于百万以上数据查询将比较费时;limit是先取出全部结果,然后取第一条,相当于查询中占用了不必要的时间和空间;还有如果需要批