2011-05-06 30 views
3

我想以編程方式從我的項目中的edmx或edmx.sqlce文件創建數據庫。在將數據發送給用戶時,我閱讀了最佳做法,這是最好的方法。但我沒有發現任何東西。或者最好是創建它並將其與程序一起發送出去?如果我這樣做,我將如何更新數據庫?我如何知道數據庫是哪個版本?以編程方式從edmx實體3.5文件創建數據庫

對不起,在一個多個問題。我是編程/數據庫新手,所以我不知道它是如何正常完成的,也無法找到一本書。

回答

3

這種情況下的最佳做法是創建安裝程序包(.msi),它將安裝您的應用程序並執行腳本來部署數據庫。該腳本甚至可以檢查SQL Server CE和.NET Framework等依賴項。這也將解決您的數據庫版本問題,因爲.msi安裝包會保存此信息,因此您可以創建升級.msi,這將知道它必須只執行數據庫的更改腳本,而不是創建新的腳本。請注意,創建安裝包是非常複雜的任務,但這是如何在向客戶發運的實際產品中完成的。在我現在和以前的公司中,我們都使用WiX來創建安裝包,但我們有特殊人員來做這件事。

沒有API從EDMX文件創建數據庫。此外EDMX文件不是構建應用程序的一部分。數據庫生成是VS2010的特性,它使用工作流或T4模板將EDMX轉換爲SQL腳本。默認模板只能創建完整的數據庫腳本,您必須執行它。

我描述了在separate question中爲新版本數據庫創建部署腳本的方式。它與代碼優先(EFv4.1)相關,但原理相同。如果您需要保留有關數據庫版本的信息,可以爲此提供特殊的表格,並在升級腳本開始處檢查表格中的值。

+0

我有一個用於SQL Server Compact的模式差異工具,如果有幫助的話 – ErikEJ 2011-05-07 06:54:03

相關問題