在上一節中我們在建立數據庫的時候提到過,XCode強大的反向工程能力,這里在本機舉個例子,實體還是用上次的實體,代碼還是上一節的代碼,只是修改Web.Config就可以有神奇的功效,以及提供一個僅依靠Web.Config的連接字段,脫離實體的數據庫復制代碼和方法.
如果是第一次閱讀本文,沒有XCode的DLL的請閱讀上一篇日志獲取DLL
NewLife.XCode 上手指南
http://www.cnblogs.com/JangoJing/archive/2012/07/26/2610034.html
一、反向工程SQL2005到MySQL
上一節中,我的數據庫是建立在SQL2005里的,這里我們要演示如何通過只修改Web.Config就在MySQL里生成一個數據庫.
首先要介紹的是XCode的配置,XCode的所有配置,在XCode.DLL里,通過反編譯就可以看到![]()
這里我們要介紹的是幾個常用的配置<!--是否啟用反向工程,默認不啟用。反向工程可以實現通過實體類反向更新數據庫結構--> <add key="XCode.Negative.Enable" value="true"/>
這個配置默認是不打開的,只有手動打開配置,XCode在初始化的時候,會自動檢查連接字段,如果不存在數據庫,就建立數據庫,XCode是如何工作的,具體的深入分析見小董的博客
關於Xcode數據庫反向工程的理解
http://www.cnblogs.com/asxinyu/archive/2012/04/23/2467055.html
這里我們不深入探討,只要我們打開了這個設置,那么XCode在程序啟動的時候就會自動生成數據庫,所以你開發好的程序,直接拿到你同事電腦上,一改連接字段,馬上就可以運行.
在這里提示一點,請注意實體的屬性聲明,譬如Student.cs最頂端,默認有個屬性是不存在的[ModelCheckModeAttribute(ModelCheckModes.CheckTableWhenFirstUse)]因為他有默認值,默認就是第一次運行的時候檢查所有表,當然他還有另外一個值,就是用到的時候檢查
因為即將用到MySQL,所以我們要復制mysql.data.dll到我們的工程項目中,這個文件在代碼生成器文件夾里能找到![]()
接下來,修改Web.Config首先是打開反向工程的開關,和一些其他的設置
<appSettings> <!--是否啟用調試,默認不啟用--> <add key="XCode.Debug" value="false"/> <!--是否輸出SQL語句,默認為XCode調試開關XCode.Debug--> <add key="XCode.ShowSQL" value="false"/> <!--設置SQL輸的單獨目錄,默認為空,SQL輸出到當前日志中生產環境建議出到站點外單獨的SqlLog目錄--> <add key="XCode.SQLPath" value=""/> <!--是否啟用反向工程 默認不啟用。反向工程可以實現通過實體類反向更新數據庫結構--> <add key="XCode.Negative.Enable" value="true"/> </appSettings>
![]()
接下來改連接字段
<connectionStrings> <!--<add name="XCodeTest" connectionString="Server=(local);User id=sa;Pwd=sa;Database=XCodeTest" providerName="System.Data.SqlClient"/>--> <add name="XCodeTest" connectionString="Server=.;Database=XCodeTest;Uid=root;Pwd=root;" providerName="MySql.Data.MySqlClient"/> </connectionStrings>
![]()
先看一下MySql
![]()
萬事具備,只欠F5,程序運行起來后,看不出任何效果,但我們到MySQL里看看呢.![]()
表結構都過來了,但是其實表里面是沒有值的.
由於我們在Web.Config中打開了日志功能,所以在項目根目錄下有個LOG文件夾.里面有我們所有SQL語句,這里沒有做其他操作,所以只有這些內容
二、脫離實體,僅用20幾行代碼搞定整庫遷移
詳情請看小董博客
利用Xcode 20行代碼搞定任何數據庫的遷移
http://www.cnblogs.com/asxinyu/archive/2012/04/26/2470838.html
本節Demo(本節Demo僅供本節測試,后續小節不基於本節Demo)
http://dl.dbank.com/c0m1dmf1zw
XCode上手指南系列:
NewLife.XCode 上手指南
NewLife論壇地址:
大石頭博客:
NewLife.XCode開發資源目錄
http://www.cnblogs.com/asxinyu/archive/2012/06/02/2532210.html