主要内容:
1.编写数据库脚本
2.HasAndBelongsToMany属性说明
3.编写实体类
4.编写调用代码
一、编写数据库脚本
由于Student与Subject是多对多关系,这里加入一个关联表Student_Subject来保存这些关系
二、HasAndBelongsToMany属性说明
在Castle.ActiveRecord中用HasAndBelongsToMany属性处理多对多关系,该属性必须包含以下三个子属性:
1.Table:指出关联表表名(本文为Student_Subject);
2.ColumnKey:指出关联表中指向本实体类数的列名;
3.ColumnRef:指出关联表中指向另一个实体类的列名。
除了以上三个必须子属性外,HasAndBelongsToMany属性还有以下几个常用子属性:
1.Cascade:指明哪些操作会从父对象级联到关联的对象。该属性值应为CascadeEnum枚举值之一:
a) None(默认值):不进行级联操作;
b) All:表示父对象的任何操作都会关联到级联对象;
c) Delete:表示只有对父对象进行删除操作时才会关联到级联对象;
d) SaveUpdate:表示只有对父对象进行保存、更新操作时才会关联到级联对象。
2.Inverse:指定是否进行级联操作;
3.Schema:指定Schema名;
4.Where:指定一个附加SQL的Where子句,这里应该写HQL语句;
5.Lazy:指定是否延迟加载级联对象。
三、编写实体类
Student.cs:
Subject.cs:
四、编写调用代码(只列举添加Student对象的程序)
在保存Student对象objStudent时必须保证objStudent.SubjectList中的Subject对象已存在数据库中,否则是无法保存Student对象的!