sql - 配置文件 Entity Framework

标签 sql entity-framework

我有以下示例代码:

  Context context = new Context();
  Repository repository = new Repository(context);

  Post post = repository.First<Post>(x => x.Id == 1);

  Model model = new Model {
    Created = cube.Created,
    Id = cube.Id,
    Name = cube.Name,
    Pack = cube.Pack.Id,
    Mimes = context.Files.Where(x => x.Id == 1).Select(x => x.Mime).ToList()
  };

我需要找到哪些 SQL 查询被发送到数据库。

如何使用 SQL Express 和 VS 2012 分析 EF 查询?

有什么工具可以做到这一点吗?

最佳答案

EF Profiler在另一个答案中指定的是野兽 - 非常强大,但这不是免费的($$,磁盘空间和时间)。它也是由 Oren Eini 制作的NHibernate 和 RavenDB名气。

我喜欢在紧要关头使用的工具更轻巧,当然在功能方面无法与 EF Prof 相比 - 但成本($$、时间和磁盘)是,或方法, 零。

我在 LocalDb 上使用 EF 测试了这些轻量级分析器,但它们的主要用例是更传统的 Sql Server 风格(包括 Express)。

ExpressProfiler

到目前为止,最容易使用的(也是最简单的-show-me-the-SQL-statements-kthxbye)是 ExpressProfiler on CodePlex .

enter image description here

整个程序是一个 126 KB 的 EXE!现在轻了!

AnjLab Sql 分析器

另一个来自 DataWizard ,以前是免费的(显然现在价格从 5 美元起)。

有人设法保存了 snapshot on GitHub (包括 xcopy-installable 二进制文件),当它是开源的。

可执行文件将自己显示为“AnjLab Sql Profiler”并允许对显示的事件进行一些过滤 - 但这种优势也是它的弱点,因为可以启用/禁用的事件类型太多了。如果选择了所有内容,输出将非常冗长。

仅通过选择特定事件可以获得更合理的输出。

enter image description here

以下是我为获得上述输出而选择的事件:

enter image description here

关于sql - 配置文件 Entity Framework ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13812256/

相关文章:

sql - 我的sql查询出错

c# - Nopcommerce Plugin Creation中Sequence contains more than one matching elements如何解决?

javascript - 如果使用单个实体,使用自动映射器对我来说效果很好

c# - 如何遍历临时表的循环以取出SQL中的每个列名?

c# - 无法使用参数化查询插入 0 值

mysql - 从 TABLE_NAME : with constant GMT 中选择 A、B、C、GMTDATE

c# - Linq 结果如果为空则为零

php - 为什么我的代码在尝试防止 Sql 注入(inject)时不起作用?

c# - Entity Framework LINQ

c# - 如何首先在代码中创建函数?