【问题标题】:Get EF generated SQL query with variables values already plugged in ("p__linq__n")获取已插入变量值的 EF 生成的 SQL 查询(“p__linq__n”)
【发布时间】:2015-04-19 16:45:28
【问题描述】:

.ToString() 调用到IQueryable 将返回生成的SQL 查询,其中包含尚未插入的变量值。所以在查询本身中有这些p__linq__nn=0, 1, 2...

例如:SELECT * FROM foo WHERE x = p__linq__0

问题:能否得到最终查询?这些变量的值已经插入到查询中了吗?

例如:SELECT * FROM foo WHERE x = 6

【问题讨论】:

    标签: entity-framework linq-to-entities iqueryable


    【解决方案1】:

    EF 对查询进行参数化以避免 Sql 注入攻击,并且即使某些值发生更改,也能够缓存和重用相同的查询。要查看参数,您可以使用 EF6 中引入的日志记录功能。有关详细信息,请参阅this 博文系列。

    【讨论】:

    • 我希望最终查询“准备好使用”。即:我可以复制粘贴到数据库并使用<ENTER> 执行的字符串。我知道我可以使用日志记录功能检查参数值,但我仍然必须将这些值插入查询
    • 可能使用了Sql Analyzer。我认为您无法直接从 EF 获得所需的内容。
    猜你喜欢
    • 2017-12-16
    • 2021-09-03
    • 1970-01-01
    • 2019-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-14
    相关资源
    最近更新 更多