2013-02-25 41 views
1

我正在重新設計一個使用ADO通信連接到SQL的產品。業務層在C++中。整個查詢都寫成SP。 我希望產品支持SQL 2008,並且可能是Mysql(尚未最終確定)。從ADO移動到ADO.net

這些是我認爲的變化!

  1. 將整個通信移動到ADO.net。
  2. 由於從SP遷移到即席SQL查詢可能需要付出很大的努力,因此如何編寫由C++中的前一個bussines層使用的包裝器C#圖層。
  3. 想到了對seroiusly看一些ORM工具。但是由於它涉及很多SP,我覺得它更好地逐步進行。

我想對此反饋/建議。這是一個很好的轉折嗎?

+0

首先,我們說什麼樣的規模 - 這是20嗎? 200? SP的?另外:如果您現有的SP工作,爲什麼不通過ADO.NET轉換到SP?這裏不需要跳轉到專門的SQL。但我要說的主要事情是:避免「DataTable」等的誘惑;沒有什麼好的來自:) – 2013-02-25 08:04:56

+0

目前的產品使用SQL 2005.我想將它移到SQL 2008可能會在下一個版本中想支持MySQL。我也在思考類似的問題。但是,將C#包裝在C++商業層上的C#將會導致任何性能障礙嗎? – user1687824 2013-02-25 09:23:35

回答

3

根據個人喜好,我會創建LINQ2SQL或可能的實體框架層來訪問數據庫。 LINQ2SQL和Entity Framework都可以導入定義並調用存儲過程1。

我會逐步將存儲過程轉換爲LINQ代碼。

¹)在合理範圍內,具有多個返回集的SP和不是來自單個表的選擇必須手動映射,但它仍然是可能的。

+0

我在這裏有一個問題。 Linq2SQL支持MySQL嗎? 。我聽說實體很好。但對我來說這將是很多重新工作。我認爲從ado移動到ado.net會提供更好的性能。不是嗎? – user1687824 2013-02-25 09:25:40

+0

我認爲Linq2SQL有一個第三方MySQL提供程序,但後來我會去EF。原始的ADO.NET比使用OR映射器要快一點,但另一方面,使用OR映射器編寫代碼通常比直接使用ADO.NET更快並且不易發生錯誤。 – 2013-02-25 09:29:37

+0

掀起一個小型測試項目,將您的數據庫導入爲EF模型,如果您的SP與EF設計師兼容,您將立即看到。 – 2013-02-25 09:32:36