2010-10-20 35 views
1

我正在研究一個數據庫重型項目,其中Microsoft SQL數據庫非常成熟(16年或更長的成熟期),並且一箇舊產品使用VB6和ADO生成sql與數據庫交互。我已經被賦予了使用新的.NET版本移植/重寫古代版本的任務。我很喜歡使用LINQ-to *來確保易維護性,但在過去的幾周裏我嘗試過,我覺得LINQ-to-SQL的靈活性不夠,LINQ-to-Entities有太多的問題開銷和LINQ到數據集是毫無意義的,因爲我會同樣喜歡使用Ado.Net。LINQ與現有數據庫和未知模式

該程序一次運行在兩個數據庫上:一個是包含元數據的非常一致模式的數據庫,另一個是具有不同模式的數據庫,與元數據庫緊密耦合,並指明瞭什麼來自您在任何給定時間感興趣的元數據庫的信息。此外,我需要來自兩個數據庫的非LINQ信息(例如系統存儲過程和系統表)。

這裏有什麼方法可以智能地使用LINQ嗎?我很喜歡靜態類型,但如果我不能擁有它,我不想強​​制我的方形應用程序變成一個圓形框架。

+0

P.S .:因爲這是我第一次發佈的問題,所以對內容/樣式的任何反饋都是值得歡迎的。我意識到這裏沒有源代碼,但似乎並不合適。 – Crisfole 2010-10-20 15:34:38

回答

0

被盜最好的答案似乎是完全使用ADO.NET。我可以選擇使用Linq-to-Sql作爲元數據庫和ADO.NET的任何其他數據庫訪問權限,但這會使代碼對我來說太不一致。

1

只是一個FYI,你可以使用LINQ訪問系統表(和sys存儲過程?)。這是如何:

  • 創建一個連接到你想要的服務器。
  • 右鍵單擊服務器,然後選擇更改視圖>對象類型。
  • 您現在應該看到系統表和用戶表。你應該在這裏看到sysjobs,你可以很容易地將它拖到.dbml表面上。

以上從this post.

+0

非常感謝。我一直在想如何做到這一點,但並不過分擔心。 – Crisfole 2010-10-20 14:15:20