1
我最近開始學習有關名爲Dapper的微ORM。我們通常嚴重依賴MSSQL數據庫中的存儲過程,以避免將T-SQL與我們的C#代碼混合在一起。在Dapper中使用存儲過程有什麼不利嗎?
你對Dapper和存儲過程有什麼經驗? Dapper是否需要內聯T-SQL來充分利用Dappers的所有優點\功能?
我最近開始學習有關名爲Dapper的微ORM。我們通常嚴重依賴MSSQL數據庫中的存儲過程,以避免將T-SQL與我們的C#代碼混合在一起。在Dapper中使用存儲過程有什麼不利嗎?
你對Dapper和存儲過程有什麼經驗? Dapper是否需要內聯T-SQL來充分利用Dappers的所有優點\功能?
你對Dapper和存儲過程有什麼經驗?
小巧玲瓏的最終對象映射,使用ADO.Net
API的內部,但它確實緩存某些數據結構,以使查詢更快,其工作原理,但它非常有效地工作與存儲過程。
Dapper是否要求內聯T-SQL充分利用Dappers的所有優點\功能?
不,-其實作爲存儲過程是預編譯的,所以不像SQL文本queriues有硬解析的每個請求沒有範圍,因爲最優的執行計劃在SQL Server已經被緩存。
在簡而言之,存儲過程中確實使用了短小精悍和SQL Server組合爲一個理想的機制:
Marc Gravell說,Dapper沒有任何映射呃在這個答案http://stackoverflow.com/a/9518214/294242但我猜映射功能已實施自2012年,這是他發佈答案的日期... 什麼是TVP? –
@JonasAxelsson您誤解了Marc的答案,問題是如果您指定實體並且數據庫結果具有不同的一組列名稱,它將如何映射? Marc說,沒有選擇,實際上即使現在默認情況下也沒有選項,需要使用其中一個擴展來執行映射,這會覆蓋默認的Sql映射器,其唯一目的是映射Sql中具有相同名稱的列結果。這並不影響Dapper是一個對象映射器的事實,因爲它導致'IEnumerable'而與您的問題無關:) –
使用存儲過程與Dapper確實是許多企業系統使用的標準機制 –