C# 我需要参数化基本查询吗

C# 我需要参数化基本查询吗,c#,dapper,C#,Dapper,我有EntityFramework和linqtosql背景 我正在考虑使用整洁的方式来提高性能 Dapper缓存有关它运行的每个查询的信息,这使它能够快速实现对象和快速处理参数。当前实现将此信息缓存在ConcurrentDictionary对象中。它存储的对象永远不会刷新。如果在不使用参数的情况下动态生成SQL字符串,则可能会遇到内存问题。我们可以将字典转换为LRU缓存 我必须参数化所有查询吗。 甚至是没有任何参数的查询 范例 Select Id,Boo FROM dbo.FOO 查询中没有任

我有
EntityFramework
linqtosql
背景

我正在考虑使用整洁的方式来提高性能

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

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

范例

Select Id,Boo FROM dbo.FOO

查询中没有任何变化,因此,不,不需要对其进行参数化

警告告诉您,如果您写入
Select Id,Boo FROM dbo.FOO where Bar=3
Select Id,Boo FROM dbo.FOO where Bar=4
,以及
Select Id,Boo FROM dbo.FOO where Bar=5
,则将缓存3个查询。随着您不断改变与
条匹配的内容,将制作更多的副本