NHibernate 關聯對映

2021-09-06 15:33:37 字數 1997 閱讀 2824

[nhibernate]體系結構

[nhibernate]isessionfactory配置

[nhibernate]持久化類(persistent classes)

[nhibernate]集合類(collections)對映

單向關聯是最常用的也是最難正確使用的。在本文中會逐個經歷規範的案例,從單向對映開始,然後涉及雙向的案例。我們會在所有的例子中hi用person和address。例子中沒有包括命名空間和程式集,我們把關注點放在重要的方面。

我們通過是否使用表連線和多樣性(單向或雙向)分類關聯。

在傳統的資料模型中允許為空的外來鍵是不適用的,所以我們的例子中沒有使用允許為空的外來鍵,在nhibernate中這不是必須的,如果你刪除控制的約束,對映會照常工作。

多對一(many to one)

一對一(one to one)

一對多(one to many)

多對一(many to one)

一對一(one to one)

一對多(one to many)

多對多(many to many)

一對多(one to many)/多對一(many to one)

雙向的一對多(one to many)關聯是普通的關聯型別。(這是標準的parent/child關係)

1

<

class

name

="person"

>

2<

id name

="id"

column

="personid"

>

3<

generator

class

="native"

/>4id

>

5<

many-to-one

name

="address"

6column

="addressid"

7not-null

="true"

8/>

9class

>

10<

class

name

="address"

>

11<

id name

="id"

column

="addressid"

>

12<

generator

class

="native"

/>

13id

>

14<

set

name

="people"

inverse

="true"

>

15<

key

column

="addressid"

/>

16<

one-to-many

class

="person"

/>

17set

>

18class

>

19create table person 20(

21personid bigint not null primary key,

22addressid bigint not null23)

24create table address25(

26addressid bigint not null primary key

27 )

一對一(one to one)

一對多(one to many)/多對一(many to one)

一對一(one to one)

多對多(many to many)

這裡對知識點有個大概的了解,具體應用還需在後續的文章中,通過例子來說明。

Nhibernate中一對多對映 雙向關聯

雙向關聯和單向關聯的區別是 兩邊都能維護關係,如我查詢兩邊的任何一邊,另外一邊的資訊也能查詢出來,其他的修改刪除只要設定了,也都可以。體現在 中是 因為上篇單向關聯是在dictionaryentity上,所以變為雙向關聯要在dictiontypeentity和他對應的xml檔案中加上關聯對映。dic...

NHibernate配置及對映檔案

配置nhibernate有三種常見的配置方法。xml version 1.0 encoding utf 8 configuration configsections section name hibernate configuration type nhibernate.cfg.configurat...

Nhibernate多對多對映

一般來說多對多對映,對映表不需要設定為實體類,但如果特殊需求,如需要新增欄位isactived等,這個時候就需要將對映表設定為實體,同時該實體需要針對兩邊的類做many to one對映,而兩邊的類需要做來實現雙向關聯,如下例 需求 系統需要對私人 accountinfo 傳送短訊息 message...