相关疑难解决方法(0)

从SqlCommand对象获取生成的SQL语句?

我有以下代码:

Using cmd As SqlCommand = Connection.CreateCommand
    cmd.CommandText = "UPDATE someTable SET Value = @Value"
    cmd.CommandText &= " WHERE Id = @Id"
    cmd.Parameters.AddWithValue("@Id", 1234)
    cmd.Parameters.AddWithValue("@Value", "myValue")
    cmd.ExecuteNonQuery
End Using
Run Code Online (Sandbox Code Playgroud)

我想知道是否有任何方法可以将最终的SQL语句作为String获取,它应该如下所示:

UPDATE someTable SET Value = "myValue" WHERE Id = 1234
Run Code Online (Sandbox Code Playgroud)

如果有人想知道为什么我会这样做:

  • 用于记录(失败)语句
  • 有可能将其复制并粘贴到企业管理器以进行测试

c# vb.net ado.net

177
推荐指数
7
解决办法
15万
查看次数

通过相等缓存LINQ表达式

考虑这种情况.

您有一个存储库,允许对其进行某些调用.这些调用使用LINQ,并且就返回的数据量而言可能相对昂贵.

鉴于在我的情况下,如果数据是旧的并不是太糟糕 - 可以实现缓存,因此每次调用都不会执行大而昂贵的查询.嘿,我们甚至可以实现一些缓存策略来确定何时根据时间或用途再次执行该查询.

我试图解决的问题是如何在缓存中键入它.一种方法是简单地说:

"querytype1" = Particular LINQ expression
"querytype2" = Particular LINQ expression
Run Code Online (Sandbox Code Playgroud)

然后通过一个简单的字符串键入缓存.但是,鉴于我们正在使用LINQ,我们是否可以通过LINQ表达式本身来键入缓存?我理解性能指标,但无论如何要比较两个LINQ表达式是否相同?

c# linq caching

6
推荐指数
1
解决办法
425
查看次数

标签 统计

c# ×2

ado.net ×1

caching ×1

linq ×1

vb.net ×1