我開發了一個企業產品,目前生活在幾個站點。這是在MS堆棧上開發的,使用SQL Server作爲後端數據存儲。 我沒有使用EF/NHibernate進行數據訪問,而是使用了相同的Dapper和一些自定義擴展。這對我們來說很好,因爲我們所擁有的大多數 查詢都是跨多個表的複雜聚合和過濾器。定製SQL大大減少了我們查找瓶頸並加快修復速度的工作量。同時支持MS-SQL和Oracle
現在由於一些商業原因,我們需要爲一個大客戶支持oracle(我們無法讓他們使用SQL,因爲他們是一個完整的Oracle商店)。
假設我需要改變很多數據類型,以確保整個數據庫的一致性,這將是有益的,如果我能得到的總體思路的一些方向
什麼是接近讓我能的最佳方式支持查詢兩個數據源
方法1:嘗試將大部分查詢到ANSI SQL和只有單獨的查詢爲一些專門的查詢
方法2:使用EF和Dapper的組合。 EF將用於簡單的操作,而精靈將用於繁重的讀取操作。再次徘徊無論採用短小精悍可能需要有單獨的查詢爲Oracle & SQL
方法3:繼續使用小巧精緻,並有單獨的查詢所有的操作
2)I dacpac用於數據庫部署自動化。我如何爲oracle實現相同的功能?
除了這些,還有其他什麼東西在支持兩個數據庫時需要注意,比如處理datetime,currency等嗎?
@ M-哈桑,如果理解正確的話,你所建議的是有EF POCO類,但用短小精悍的兩個SQL& oracle分開?我同意沒有從整合測試套件中獲得測試數據訪問跨越sql和oracle –
我編輯,並提供替代4,使用EF與Oracle –
@ m-hassan,知道EF好,我不認爲當我有一些複雜的查詢時,它會工作得很好。所以看起來我需要處理EF和Dapper的工作,儘量減少查詢的重複。 –