2012-02-01 14 views
1

私はこれらの2つのテーブルに外部キーを持たないレガシーデータベースを持っています。したがって、驚くことではないが、結合テーブルはありません。Hiberate多対多の結合テーブルまたは外部キーなし

私は両方のテーブルがBookingIdsごとに多くのレコードを持っているので、私はこれらのテーブルのいずれかで外部キーを作成することはできませんので、今は結合テーブルを作成することはできません。または何とか私は間違っていますか?

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

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

私は流暢なnHibernateでこれらのテーブルに多対多の関係を作りたいと思います。

これは不可能ですか?

ジョインで簡単なクエリを試してみることをお勧めしますか?

もしこれらのテーブルがドメインにとって不可欠なので、私はhibernate/nhibernateを一切放棄しなければならないかもしれません。

おそらく、データベース/テーブルをnHibernateの使い方を再構成する必要がありますか?

+0

'BookingsTable' 1つがある' BookingId'と 'BookingLocationsTable'があまりにも、1持って、あなたは' BookingId'が等しい場合、この2つのテーブルのエンティティを関連付けるしたいですか?もしそうなら、私はむしろ多対多ではなく二対多の対等であると言うでしょう。そうであれば教えてください。このようなマッピングを書くことは可能です。 – NOtherDev

+0

@ NOtherDevあなたはあなたが正しいと思います。一般的には、多くの人がmanysに2 1と論理的に同じことが多いようですね? – iKode

+0

@NOtherDevこれが2対1の関係であっても、いずれの表のbookingId列にも外部キーを作成できないため、これはnHibernateを使用できません。私が作ることができない関係。 – iKode

答えて

2

私は実際にこれらの2つのテーブルの間に妥協のない関係があることを理解し、議論しています。

私はこのタイプのORMに慣れていますので、テーブルとの間に何らかの関係が必要だと仮定していました。

いくつかの調査の後、私はlinqをnHibernate、HQL、さらにはdbのネイティブSQLに使って、私がする必要があることを知ることができました。上向き

以降:)

関連する問題