NHibernate初學六之關聯多對多關係

2022-03-29 02:32:23 字數 3890 閱讀 1027

1:建立三張表t_course、t_student、t_middle;其中乙個學生可以對應多個課程,乙個課程也可以對應多個學生,用t_middle存放它們的關係內容;

2:實體的**,其中兩個類中都有ilist,中間關係類就不用建立的:

public

class

coursemodel

public

virtual

string coursename

public

virtual ilist students

}public

class

studentmodel

public

virtual

string name

public

virtual

string studentnum

public

virtual ilist courses

}

3:xml對映檔案的內容3.1 coursemodel.hbm.xml檔案的內容:

<?xml version="

1.0" encoding="

utf-8

"?>

wujy.modellibrary

"namespace="

wujy.modellibrary.entity

" xmlns="

">

coursemodel

" table="

t_course

" lazy="

true

">

"id" column="

id">

class="

identity

" />

"coursename

">

"coursename

" sql-type="

varchar

" not-null="

false

" />

"students

" table="

t_middle

" lazy="

true

" inverse="

true

">

"courseid

">

"studentid

"class="

studentmodel

">

class>

3.2 studentmodel.hbm.xml檔案的內容:

<?xml version="

1.0" encoding="

utf-8

"?>

wujy.modellibrary

"namespace="

wujy.modellibrary.entity

" xmlns="

">

studentmodel

" table="

t_student

" lazy="

true

">

"id" column="

id">

class="

identity

" />

"name

">

"name

" sql-type="

varchar

" not-null="

false

" />

"studentnum

">

"studentnum

" sql-type="

varchar

" not-null="

false

" />

"courses

" table="

t_middle

" lazy="

true

" inverse="

false

">

"studentid

">

"courseid

"class="

coursemodel

">

class>

注意:inverse:意思是反轉,它指明類之間的關係由誰來進行維護。例如:班級(class類)與學生(student),班級-學生就是one-to-many,學生-班級就是many-to-one。它只能在 one-to-many中many的一方進行設定(當然,在many一方,可能是在也可能是在也可能是在中進行設定),而對於one方,是不進行inverse設定的。在nhibernate 社群,inverse預設值為false。

4: 主要**如下

protected

void button1_click(object

sender, eventargs e)

protected

void button2_click(object

sender, eventargs e)

protected

void button3_click(object

sender, eventargs e)

關六如生平介紹,關六如簡歷

關六如 1903 1983 字勁夫,浙江溫州人。著名電機工程學家 教育家,一級教授,中國電機工程學會發起人之一,第一屆全國人大代表,第 二 四屆民盟 委員。1925年關六如先生畢業於浙江公立工業專門學校 浙江大學前身 電機科並留校任助教。1930年赴美國康乃爾大學公費留學。1931年獲電機工程碩士學...

linux初學(六)之linux系統基礎

vi是乙個命令列介面下的文字編輯器工具,vi改進vim linux知名的文字編輯器還有emacs,她的功能比vim還要強大 命令vim可以啟動vim編輯器 vim擁有三種模式 命令模式 預設 命令模式可以貼上複製撤銷 插入模式 在命令模式下按i ex模式 在命令模式中按 可以進入ex模式,游標會移動...

NHibernate初學者指南系列文章導航

經過三個多週的時間,終於將這個系列完成了,謝謝大家的關注和支援,有很多不足之處還望大家包涵。本系列參考的書籍為nhibernate 3 beginner s guide一書。nhibernate初學者指南 1 開篇 nhibernate初學者指南 2 乙個完整的例子 nhibernate初學者指南 ...