相关疑难解决方法(0)

如何知道运行时哪个 Linq 语句生成了现有的 SQL?

我希望以某种方式编写实体框架或 LINQ to SQL 查询,以便当我在 SQL Server Profiler 中看到 SQL 查询时,我可以快速识别哪个 LINQ 语句生成该 SQL,而无需进入调试器并跟踪它。该应用程序不会使用存储过程,这使得通过过程名称进行搜索变得容易。

有任何想法吗?有没有一种方法可以在 LINQ 查询中注入带有代码的静态字符串,仅用于识别查询而不影响查询结果?

更新
我添加此内容是为了响应日志记录建议。我不想在生产中一直运行日志记录,以防出现问题时需要查看某些 SQL。寻找一种性能成本最小的方法。向每个 linq 语句附加一些唯一的字符串,以便代码可以很容易地与 SQL 相关联?

c# linq linq-to-entities entity-framework linq-to-sql

3
推荐指数
1
解决办法
609
查看次数

可以在sql探查器中读取的SQL'注释'

我尝试了几种方法,例如使用双连字符,即--THIS IS A COMMENT,但是当在探查器中读取已执行的sql时,注释将被剥离,仅留下正在执行的原始SQL。

我想这样做是为了在查看每分钟有8000多个条目的SQL事件探查器输出时快速识别查询及其来源。

--Method signature and an application name
Run Code Online (Sandbox Code Playgroud)

例如

--MyMethod(string username) in MyFunkyAppName.
Run Code Online (Sandbox Code Playgroud)

我正在使用EntityFramework 4.3,它使linq到实体变得更加复杂,而linq到sql的少量散布则带来了很好的效果。

编辑:我知道添加一个狡猾的where子句或使用匿名属性来识别事物的解决方案,例如在SQL Profiler中找到巧妙的LINQ查询的聪明技巧,但我希望可以使用一种更简单的方法,也可以是一种通用的方法。

sql linq-to-entities entity-framework sql-server-profiler linq-to-sql

3
推荐指数
1
解决办法
417
查看次数