2011-07-20 48 views
4

我在這裏打開一個主題的討論,我找不到任何可以稱爲最終答案的答案:MySQL和.NET。如何連接到.NET框架內的MySQL數據庫?

雖然我知道有很多方法可以使這種連接,我試圖找到每種方法的優缺點列表。

自從我的項目開始以來,我一直在使用ADO.NET和MySQL NETconnector,並且當數據庫是新的並且沒有很多記錄時一切正常。但是現在我面臨着記錄數量呈指數增長的情況,並且我發現了另一種查詢數據庫的方式,即ODBC連接器。使用ADO.NET + NETConnector解決方案我有我的O/RM,並且不必寫我的查詢,而ODBC現在使我的代碼看起來很糟糕(因爲我沒有完全切換到ODBC,我有Linq查詢和純SQL在我的代碼中查詢)。

有什麼解決方案(免費或不是)我可以同時擁有O/RM而無需自己編寫SQL查詢和ODBC的速度?

回答

2

你應該做的是使用MySQL ADO.NET Connector並以stored procedures的形式將查詢存儲在數據庫中。 MySQL連接器的6.0版本也支持The Entity Framework。如果您有興趣使用實體框架,請查看this link,其中介紹瞭如何設置它。

+0

@Bruno - 這聽起來不像ADO.NET的問題。這聽起來更像是一個數據庫問題。你有你的表正確索引?嘗試直接從MySQL前端運行相同的查詢,看看速度是否仍然是問題 – Icemanind

+0

這正是我正在做的,它工作正常,但隨着我的數據庫增長,它變得越來越慢(這是有點顯而易見),而ODBC速度不會以這麼大的速度下降。 –

+0

它不是一個問題,這是問題所在。 –

0

NHibernate

更新到評論

NHibernate Proxy Generators 這是你的對象模型中的字節代碼生成器,可以讓NHibernate的執行延遲加載等操作。提供的鏈接解釋了好處。

Castle和LinFu是這些代理生成器的兩種不同實現。

雖然NHibernate沒有重合文檔所有關於如何使用它的信息,在互聯網上。儘管如此,這可能成爲一些人可用性的障礙。我對Hibernate有更多的瞭解,因爲我有過Hibernate的經驗。

+0

在手機上將很快修復答案 –

+1

這個nHibernate的事情是,它只是在我的臉上扔了一堆名字,並說「現在,找出」。即使他們的網頁上的教程被認爲是寫得不好,過時,所以這是一個問題(一個大的恕我直言)。例如:我應該還是不應該使用Castle?我必須自己創建xmls,還是Castle的功能? 我認爲你可以看到問題。 –