zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    SAP应用真的不性感么
    从ABAP Netweaver的SICF到SAP Kyma的Lambda Function
    WordPress,SAP Kyma和微信三者的集成
    SAP官方发布的ABAP编程规范
    SAP官方提供的人脸识别API
    第三方应用如何在SAP Kyma上进行服务注册
    Just a Hook
    Backward Digit Sums
    Balanced Substring
    hdu 1358 Period
  • 原文地址:https://www.cnblogs.com/JangoJing/p/2610368.html
Copyright © 2011-2022 走看看