Sql 概要文件实体框架

Sql 概要文件实体框架,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

我有以下示例代码:

  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()
  };
Context Context=newcontext();
Repository Repository=新存储库(上下文);
Post-Post=repository.First(x=>x.Id==1);
模型=新模型{
Created=cube.Created,
Id=cube.Id,
Name=cube.Name,
Pack=cube.Pack.Id,
Mimes=context.Files.Where(x=>x.Id==1).选择(x=>x.Mime).ToList()
};
我需要找到哪些SQL查询被发送到数据库

如何使用SQL Express和VS 2012评测EF查询


有什么工具可以使用吗?

这里有一些选项

  • 通过在运行时使用
    ((ObjectQuery)query)打印查询来检查查询。ToTraceString()
    请参见(我认为这只适用于查询,因此在上述场景中可能不是最好的)
  • 使用内置于management studio中的SQL Profiler
  • 使用(一个非常好的第三方工具,带有试用版,这是我用来分析查询的工具)
  • 另一个答案中指定的是一个强大的野兽,但这不是免费的($$,磁盘空间和时间)。它也是由NHibernate和fame制作的

    在紧要关头,我喜欢使用的工具非常轻,当然在功能方面无法与EF Prof相比,但成本(美元、时间和磁盘)是零,或者接近零

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

    ExpressProfiler 到目前为止,最容易使用的一个(也是最简单的SQL语句kthxbye)是

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

    AnjLab Sql分析器 另一个是来自的,以前是免费的(显然现在的价格是5美元)

    当它是开源的时候,有人设法保存了一个(包括xcopy可安装的二进制文件)

    可执行文件以“AnjLab Sql Profiler”的形式出现,并允许对显示的事件进行一些过滤——但这一优点也是它的缺点,因为有太多的事件类型可以启用/禁用。如果选择了所有内容,则输出将极其冗长

    只需选择特定的事件,即可获得更合理的输出

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


    我不知道您可以在技术讨论中使用kthxbye,但现在开始。编辑:我喜欢它!从现在开始,我将在任何地方使用它。kthxbye!