我是否需要参数化基本查询

时间:2017-07-20 07:01:41

标签: c# dapper

我有EntityFrameworkLINQ to SQL背景。

我正在考虑使用dapper来提升性能。

Dapper缓存有关它运行的每个查询的信息,这使它能够快速实现对象并快速处理参数。当前实现将此信息缓存在ConcurrentDictionary对象中。它存储的对象永远不会被刷新。如果您在不使用参数的情况下动态生成SQL字符串,则可能会遇到内存问题。我们可能会将字典转换为LRU Cache

我是否必须参数化所有查询。 甚至是没有任何参数的查询。

实施例

Select Id,Boo FROM dbo.FOO

1 个答案:

答案 0 :(得分:2)

您的查询没有任何变化,所以,不,您不需要对其进行参数化。

警告是告诉您,如果您写Select Id,Boo FROM dbo.FOO where Bar=3Select Id,Boo FROM dbo.FOO where Bar=4Select Id,Boo FROM dbo.FOO where Bar=5,则会缓存3个查询。当您继续改变与Bar匹配的内容时,将会制作更多副本。