Welcome

首页 / 软件开发 / .NET编程技术 / NHibernate之旅(20):再探SchemaExport工具使用

NHibernate之旅(20):再探SchemaExport工具使用2010-07-23 cnblogs 李永京本节内容

引入

实例分析

1.表及其约束

2.存储过程、视图

结语

引入

上篇我们初步探索了SchemaExport工具使用,知道如何使用SchemaExport工具和SchemaUpdate工具利用NHibernate持久化类和映射文件删除、创建、更新数据库架构,这篇具体分析如何为表字段增加一些约束?如何生成存储过程?如何生成视图?使用SchemaExport工具帮你搞定。

实例分析1.表及其约束

众所周知,SchemaExport工具根据映射文件来生成数据库架构,在映射文件中通过Class映射可以很方便的生成数据库表。但是这篇我们看看映射的条件,所以我重新定义两个实体CategorySchema和ProductSchema,一对多关系。

Step1:两个实体持久化类编写代码如下:

public class CategorySchema
{
public virtual Guid Id { get; set; }
public virtual string Name { get; set; }
}
public class ProductSchema
{
public virtual Guid Id { get; set; }
public virtual string Name { get; set; }
public virtual int UnitsOnStock { get; set; }
public virtual CategorySchema CategorySchema { get; set; }
}

Step2:为两个实体映射,使用最简方式,编写代码如下:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="DomainModel" namespace="DomainModel">
<class name="DomainModel.Entities.CategorySchema,DomainModel">
<id name="Id">
<generator class="guid"/>
</id>
<property name="Name"/>
</class>

<class name="DomainModel.Entities.ProductSchema,DomainModel">
<id name="Id">
<generator class="guid"/>
</id>
<property name="Name"/>
<many-to-one name="CategorySchema"
class="DomainModel.Entities.CategorySchema,DomainModel"/>
</class>

</hibernate-mapping>