栏目类(一)(栏目包含多个类别)
数据字典
1.1. 表Tb_ Subject(栏目表)
表名 Tb_ Subject
列名 空/非空 数据类型(精度范围) 约束条件
ID N int PK, 流水号
SubjectName N nvarchar(200) 栏目名称
1.2. 表Tb_ Class(类别表)
表名 Tb_ Class
列名 空/非空 数据类型(精度范围) 约束条件
ID N int PK, 流水号
SubjectID N Int 栏目id
ClassName N nvarchar(200) 类别名称
实体类:
public class TbSubject
{
#region Field Members
private int _id;
private string _subjectname;
private ICollection _classes;
#endregion End of Field Members
#region Default Class Constuctor
public TbSubject()
{
_id = 0;
_subjectname = String.Empty;
}
#endregion End of Default Class Constuctor
#region Property Members
/// <summary>
///
/// </summary>
public virtual int ID
{
get { return _id; }
set { _id = value; }
}
/// <summary>
///
/// </summary>
public virtual string SubjectName
{
get { return _subjectname; }
set { _subjectname = value; }
}
/// <summary>
///
/// </summary>
public virtual ICollection Classes
{
get { return _classes; }
set { _classes = value; }
}
#endregion End of Property Members
}
对应映射文件
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="hicity_test.Models.TbSubject, hicity_test" table="Tb_Subject">
<id name="ID" column="ID" type="System.Int32" unsaved-value="0">
<generator class="identity" />
</id>
<property name="SubjectName" column="SubjectName" type="System.String" not-null="true" />
<!--一个Subject对应多个class -->
<set name="Classes" inverse="true" table="Tb_Class" cascade="all">
<key column="SubjectID" foreign-key="FK_SubjectClass"/>
<!--一个Subject对应多个class-->
<one-to-many class="hicity_test.Models.TbClass, hicity_test" />
</set>
</class>
</hibernate-mapping>
类别(多)
public class TbClass
{
#region Field Members
private int _id;
private int _subjectid;
private string _classname;
private TbSubject _subject;
#endregion End of Field Members
#region Default Class Constuctor
public TbClass()
{
_id = 0;
_subjectid = 0;
_classname = String.Empty;
}
#endregion End of Default Class Constuctor
#region Property Members
/// <summary>
///
/// </summary>
public virtual int ID
{
get { return _id; }
set { _id = value; }
}
/// <summary>
///
/// </summary>
public virtual int SubjectID
{
get { return _subjectid; }
set { _subjectid = value; }
}
/// <summary>
///
/// </summary>
public virtual string ClassName
{
get { return _classname; }
set { _classname = value; }
}
/// <summary>
///
/// </summary>
public virtual TbSubject Subject
{
get { return _subject; }
set { _subject = value; }
}
#endregion End of Property Members
}
对应映射文件
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="hicity_test.Models.TbClass, hicity_test" table="Tb_Class">
<id name="ID" column="ID" type="System.Int32" unsaved-value="0">
<generator class="identity" />
</id>
<!--
<property name="SubjectID" column="SubjectID" type="System.Int32" />-->
<property name="ClassName" column="ClassName" type="System.String" not-null="true" />
<!--一个class属于一个Subject-->
<many-to-one name="Subject" cascade="all"
outer-join="auto"
update="true"
insert="true" column="SubjectID"
not-null="true" class="hicity_test.Models.TbSubject, hicity_test" foreign-key="FK_SubjectClass"/>
</class>
</hibernate-mapping>
测试:
TbSubject subject=TbSubjectBLL.LoadById(1);
foreach (TbClass model in subject.Classes)
{
String s=model.ClassName;
};
OK!