SchemaExport工具实战

通常我们使用生成数据库架构代码实例像这样:Configuration cfg=new Configuration();

cfg.Configure(“”);

SchemaExport export =new SchemaExport(cfg);

export.Execute(....);

1.准备工作

现在数据访问测试层新建一SchemaExportFixture.cs文件用于测试生成实战。声明一个全局变量_cfg,编写 [SetUp]方法在每个测试方法执行之前调用:[TestFixture]

public class SchemaExportFixture

{

private Configuration _cfg;

[SetUp]

public void SetupContext()

{

_cfg = new Configuration();

_cfg.Configure();

}

//测试......

}


2.测试Drop(script, export)方法[Test]

public void DropTest()

{

var export = new SchemaExport(_cfg);

export.Drop(true, true);

}


Drop(script, export)方法根据持久类和映射文件执行删除数据库架构。有两个参数,第一个为True就是把DDL语句输出到控制台,第二个为True就是根据持久类和映射文件执行删除数据库架构操作,经过调试可以发现Drop(script, export)方法其实质是执行了Execute(script, export, true, true)方法。

3.测试Create(script, export)方法[Test]

public void CreateTest()

{

var export = new SchemaExport(_cfg);

export.Create(true, true);

}

Create(script,export)方法根据持久类和映射文件先删除架构后创建删除数据库架构。有两个参数,第一个为True就是把DDL语句输出到控制台,第二个为True就是根据持久类和映射文件先执行删除再执行创建操作,经过调试可以发现这个方法其实质是执行Execute(script,export, false, true)方法。

4.测试Execute(script, export, justDrop, format)方法[Test]

public void ExecuteTest()

{

var export = new SchemaExport(_cfg);

export.Execute(true, true, false, false);

}


Execute(script, export, justDrop, format)方法根据持久类和映射文件先删除架构后创建删除数据库架构。有四个参数,第一个为True就是把DDL语句输出到控制台;第二个为True就是根据持久类和映射文件在数据库中先执行删除再执行创建操作;第三个为false表示不是仅仅执行Drop语句还执行创建操作,这个参数的不同就扩展了上面两个方法;第四个参数为false表示不是格式化输出DDL语句到控制台,是在一行输出的。

所谓格式化输出就像这样:



一行输出就像这样:



5.测试Execute(script, export, justDrop, format, connection, exportOutput)方法[Test]

public void ExecuteOutTest()

{

var export = new SchemaExport(_cfg);

var sb = new StringBuilder();

TextWriter output = new StringWriter(sb);

export.Execute(true, false, false, false, null, output);

}


Execute(script, export, justDrop, format, connection, exportOutput)方法根据持久类和映射文件先删除架构后创建删除数据库架构。有六个参数,第一个为True就是把DDL语句输出到控制台;第二个为false就是不执行DDL语句;第五个为自定义连接。当export为true执行语句时必须打开连接。该方法不关闭连接,null就是使用默认连接,最后一个参数自定义输出,这里我输出到TextWriter中。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值