2009-02-03 70 views
3

我開始一個新的使用數據庫的C#項目,但是我希望它全部由版本控制。我在考慮一個SQL服務器數據庫(如果我創建了一個mdf文件,我能夠在沒有安裝SQL Server的計算機上使用它)和LINQ to SQL。啓動一個支持數據庫的新應用程序

你通常如何開始這樣的項目?你是否創建一個.sql文件來創建數據庫,然後創建linq模型?有沒有更好的辦法?

回答

4

這真的取決於你喜歡什麼。你會得到一些答案,告訴你最好先設計你的對象模型(程序員會告訴你),然後有些人會告訴你先設計你的數據模型(數據庫管理員)。

最後,正確的方法是你感覺最舒服的方式。如果您覺得您要在代碼中完成大部分數據操作,那麼從對象模型入手可能會有好處。如果你覺得你會用數據執行大部分的操作,那麼從數據庫開始對你來說是有好處的。

關於源碼控制,如果你想版本的一切,那麼你將不得不生成一個SQL文件,這將有你需要從頭開始創建你的數據庫。然後,每次更改或更新數據庫模式或數據時,都應該將該文件放入源代碼管理中。我還推薦一個命名約定,它將文件的日期和時間結合到文件中,以便從頭開始或在此之後的任何時間點輕鬆找出應用文件的順序。

當然,您還需要對源代碼進行版本化,但這應該不用說了。

2

第一個問題:是的,你總是需要在你的機器上安裝sql server來本地訪問數據庫,否則你需要設置你的服務器來接受外部連接。

第二:不應該在源代碼管理下存儲數據庫MDF文件。正如你所說的,將sql腳本存儲在源代碼控制中。第三:我建議看一下像FluentNHibernate和NHibernate這樣的對象關係映射系統,這樣你就不需要在sql中管理你的任何數據庫,而不需要實際的表create/alter語句和索引。

2

如果您使用.mdf,您的用戶將需要某個版本的SQL Server。對於小型應用程序,您可以使用(免費)SQL Server Express。

至於如何設計您的解決方案,這可能很困難,但您希望在源代碼管理中的所有東西都是是正確的。通常,開發人員不會將他們的數據庫代碼放在源代碼控制中,這總是會導致頭痛。

問題是控制數據庫的版本在Visual Studio中可能會很棘手。將變更腳本放在文件夾中很困難,因爲您必須記住在設計數據庫時創建它們。諸如字段重命名等簡單的事情可能很乏味,因爲按照正確的順序來執行它們是非常重要的。您可能需要考慮將遷移框架(如RikMigrations)作爲一種方法。對於較大的應用程序,Visual Studio數據庫項目(需要新安裝,但最近在「Team Developer」Sku中提供)將幫助您控制版本控制數據庫更改腳本等。

相關問題