Sql 捕获Linq到对象查询

Sql 捕获Linq到对象查询,sql,asp.net-mvc-3,nhibernate,linq-to-objects,Sql,Asp.net Mvc 3,Nhibernate,Linq To Objects,由于应用程序中的性能问题,我们在我的一个项目中使用内存方法,在这个项目中,我们以通用集合的形式(使用nhibernate)加载RAM中的所有表 问题是,当我们使用简单的linq-to-sql方法时,测试和QA团队能够轻松地使用sql概要文件获取他们正在查看的页面的sql查询 但使用新方法(内存中),我们一次加载集合中的所有数据,然后使用linq从该集合中获取数据,因此测试和QA团队无法获取sql查询以验证业务逻辑和bug 请建议任何在这种情况下有帮助的解决方案,我认为不可能将sql从linq获取

由于应用程序中的性能问题,我们在我的一个项目中使用内存方法,在这个项目中,我们以通用集合的形式(使用nhibernate)加载RAM中的所有表

问题是,当我们使用简单的linq-to-sql方法时,测试和QA团队能够轻松地使用sql概要文件获取他们正在查看的页面的sql查询

但使用新方法(内存中),我们一次加载集合中的所有数据,然后使用linq从该集合中获取数据,因此测试和QA团队无法获取sql查询以验证业务逻辑和bug

请建议任何在这种情况下有帮助的解决方案,我认为不可能将sql从linq获取到对象(因为所有数据都已经在收集中)。请建议任何可以帮助我的解决方案/方法/工具,以生成针对集合运行的linq的sql或任何其他好的解决方案


注意:我知道将sql从linq转换为sql是不可能的,我正在寻找可以帮助我的QA和测试团队验证查询/业务逻辑的建议(就像他们之前通过捕获sql所做的那样)。如有可能,将linq查询记录为字符串,可进一步用于运行/分析。

在这种情况下运行的唯一SQL语句是将数据加载到内存中的初始SELECT查询。完成这些操作后,您将不再运行“查询”,而是执行.NET Framework调用


考虑到您已经从根本上改变了应用程序的体系结构,您需要将这一点传达给测试和QA团队——他们将无法像以前那样“看到”应用程序现在在后台做什么。如果您的测试团队需要这种“深入”功能,那么您的体系结构可能需要进一步修改。

您能否提供更多关于需要进一步修改的详细信息?这取决于您的需求。但是,需要了解的关键是,您现在不是在对数据库执行SQL语句,而是在内存中的数据上调用.NET Framework方法。我知道获取SQL是不可能的。。我正在寻找任何其他机制,比如说将linq查询作为字符串编写,或者任何其他类型的策略……正如我前面所说的,这取决于您的需求。如果您需要能够准确地向QA和测试团队展示您在幕后所做的工作,那么请向他们提供源代码。否则,您将需要写出(可能需要归档)您正在执行的所有LINQ表达式-但是,这可能无法满足您的要求。即使我给出了源代码,也必须教它们.net、LINQ和调试过程:)