Avatar billede tigertool Nybegynder
20. januar 2007 - 02:09 Der er 2 kommentarer og
1 løsning

NHibernate : relation med 2 "keys"

Hej,

Jeg forsøger at lave en relation mellem 2 klasser i NHibernate, mit problem er bare at i relationen indgår der 2 keys. Jeg kan ikke lige se nogen måde at håndtere dette på. (Jeg kan dog komme med workarounds, men jeg vil gerne lave det "the right way")

Eksempel:

DB:

CREATE TABLE notes
(
  id integer NOT NULL,
  type integer NOT NULL,
  name character varying(40) NOT NULL,
  address character varying(120) NOT NULL,
  zipcode integer NOT NULL,
  CONSTRAINT notes_pkey PRIMARY KEY (id, type)
)
CREATE TABLE note_lines
(
  id integer NOT NULL,
  note_id integer NOT NULL,
  note_type integer NOT NULL,
  comment character varying(40) NOT NULL,
  CONSTRAINT note_lines_pkey PRIMARY KEY (id),
  CONSTRAINT note_lines_note_id_fkey FOREIGN KEY (note_id, note_type)
      REFERENCES notes (id, type) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT note_lines_note_id_key UNIQUE (note_id, note_type)
)

Jeg vil så i min Note.cs gerne have en list med alle NoteLines.
Derfor skal jeg joine notes.id og notes.type med note_lines.note_id og note_lines.note_type

Hvordan løser jeg dette?
Avatar billede spade Nybegynder
19. marts 2007 - 11:46 #1
hvorfor lader du både 'id' og 'type' indgå i din primary key i notes-relationen? i note_lines er det f.eks. kun 'id'.
Avatar billede tigertool Nybegynder
24. juni 2007 - 22:58 #2
spade > smid et svar.

Undskyld jeg glemte at skrive tilbage. Jeg løste det med at have en primary key kun bestående af et felt.
Avatar billede spade Nybegynder
24. juni 2007 - 23:22 #3
Her ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester