我有 EntityFramework
和 LINQ to SQL
背景。
我正在考虑使用 dapper 来提高性能。
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 个查询。当您继续改变与 Bar
匹配的内容时,将会制作更多副本。
关于c# - 我需要参数化基本查询吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45207521/