2017-10-10 140 views
2

如何防止Dapper中的SQL隐式转换?SQL和Dapper性能隐式转换

我们意识到,我们正在进行SQL隐式转换,导致索引扫描和死锁。 Dapper参数是nvarchar,而SQL表列是varchar。这导致我们所有的sql列转换为nvarchar。

我们通过我们的所有嵌入式小巧玲珑码持续和转换列作为cast(@SSN as varchar(9)), cast(@LastName as varcarh(25)), cast(@EmployeeId as varchar(10)

有固定的问题,一定是一个更简单的方法,是吗?

我看了这个博客,除了我们不设置字符串这样的例子:

new { queryPlanHash = args[0], startDate = DateTime.Today.AddDays(-7) }); 

https://www.codeproject.com/articles/594133/bepluscarefulpluswithplusvarcharsplusinplusdapper

有什么我们可以在连接字符串中的变化?

FinanceConnectionString "providerName="System.Data.SqlClient" connectionString="Data Source=(local);Initial Catalog=FinanceData;integrated security=SSPI;persist security info=False; Trusted_Connection=Yes" /> 

回答