2012-02-01 52 views
1

我有一個遺留數據庫,在這兩個表上沒有外鍵,因此毫不奇怪,沒有連接表。NHiberate多對多沒有連接表或外鍵

如果我不misataken創建一個連接表,現在是不可能的,因爲我不能創建這兩種表的外鍵,因爲這兩個表中每個BookingIds多條記錄。或者我錯了嗎?

BookingsTable 
    ID - primarykey 
    BookingId (this is what I need to join on) 

BookingLocationsTable 
    ID - primaryKey 
    BookingId (this is how I would join) 

我想在流暢的nHibernate中創建這些表與表之間的多對多關係。

這是不可能的嗎?

我最好嘗試做一個簡單的查詢與聯接?

如果是的話,我可能需要放棄休眠/ NHibernate的,因爲在所有的這些表域是至關重要的,也許還會有更多的例子。

或者我需要重新調整數據庫/表一些如何使用nHibernate?

+0

'BookingsTable'有一個'BookingId'和'BookingLocationsTable'有一個,也和你想從這個兩個表關聯實體的時候'BookingId'等於?如果是這樣,我寧願說有兩個一對多而不是多對多。讓我知道如果是這樣 - 可以寫這樣的映射。 – NOtherDev 2012-02-01 19:11:50

+0

@NOtherDev你知道我認爲你是對的。一般來說,看起來像多對多的人在邏輯上與2 1對manys來說是一樣的。 – iKode 2012-02-02 08:53:34

+0

@NOtherDev即使這是2一對多關係,我仍然不能使用nHibernate,因爲我無法在任何表的bookingId列上創建外鍵,因爲它需要一個唯一的鍵這種關係,我無法創造。 – iKode 2012-02-02 09:21:07

回答

2

經過一番反思和討論後,我意識到這兩張表之間實際上沒有可挽回的關係。

我是這種類型的ORM的新手,所以假設我需要表之間的某種關係來完成等效的連接。

經過一番研究,我發現,我可以使用LINQ NHibernate的,HQL,甚至DB本地SQL做什麼,我需要做的。

向上的向前:)