NewLife.XCode 上手指南(二) 反向工程使用舉例


在上一節中我們在建立數據庫的時候提到過,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里,通過反編譯就可以看到
image

這里我們要介紹的是幾個常用的配置

    <!--是否啟用反向工程,默認不啟用。反向工程可以實現通過實體類反向更新數據庫結構-->
    <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)]

因為他有默認值,默認就是第一次運行的時候檢查所有表,當然他還有另外一個值,就是用到的時候檢查


我們可以這樣配置,一般不用設置,采用默認設置即可
image


因為即將用到MySQL,所以我們要復制mysql.data.dll到我們的工程項目中,這個文件在代碼生成器文件夾里能找到
image


接下來,修改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>


image

接下來改連接字段

  <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>

image


先看一下MySql
image


萬事具備,只欠F5,程序運行起來后,看不出任何效果,但我們到MySQL里看看呢.
image

表結構都過來了,但是其實表里面是沒有值的.
image

 

由於我們在Web.Config中打開了日志功能,所以在項目根目錄下有個LOG文件夾.里面有我們所有SQL語句,這里沒有做其他操作,所以只有這些內容

image

 

 

 

二、脫離實體,僅用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論壇地址:

http://www.newlifex.com/

 

大石頭博客:

http://www.cnblogs.com/nnhy/

NewLife.XCode開發資源目錄

http://www.cnblogs.com/asxinyu/archive/2012/06/02/2532210.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM