2016-09-29 51 views

回答

4

你對Dapper和存儲過程有什麼經驗?

小巧玲瓏的最終對象映射,使用ADO.Net API的內部,但它確實緩存某些數據結構,以使查詢更快,其工作原理,但它非常有效地工作與存儲過程。

Dapper是否要求內聯T-SQL充分利用Dappers的所有優點\功能?

不,-其實作爲存儲過程是預編譯的,所以不像SQL文本queriues有硬解析的每個請求沒有範圍,因爲最優的執行計劃在SQL Server已經被緩存。

在簡而言之,存儲過程中確實使用了短小精悍和SQL Server組合爲一個理想的機制:

  • 性能
  • 清潔和一致的代碼
  • 做複雜的數據庫操作,就像TVP工作,它可以採取大量的數據在單一的電話和使用它而不是多個網絡請求uisng文本查詢
+0

Marc Gravell說,Dapper沒有任何映射呃在這個答案http://stackoverflow.com/a/9518214/294242但我猜映射功能已實施自2012年,這是他發佈答案的日期... 什麼是TVP? –

+0

@JonasAxelsson您誤解了Marc的答案,問題是如果您指定實體並且數據庫結果具有不同的一組列名稱,它將如何映射? Marc說,沒有選擇,實際上即使現在默認情況下也沒有選項,需要使用其中一個擴展來執行映射,這會覆蓋默認的Sql映射器,其唯一目的是映射Sql中具有相同名稱的列結果。這並不影響Dapper是一個對象映射器的事實,因爲它導致'IEnumerable '而與您的問題無關:) –

+0

使用存儲過程與Dapper確實是許多企業系統使用的標準機制 –

相關問題