myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
   » Plugin für Firefox
   » Plugin für IE
   » Gadget für Windows
» Regeln
» Wie poste ich richtig?
» Datenschutzerklärung
» wbb-FAQ

Mitglieder
» Liste / Suche
» Stadt / Anleitung dazu
» Wer ist wo online?

Angebote
» ASP.NET Webspace
» Bücher
» Zeitschriften
   » dot.net magazin

Ressourcen
» guide to C#
» openbook: Visual C#
» openbook: OO
» MSDN Webcasts
» Search.Net

Team
» Kontakt
» Übersicht
» Wir über uns
» Impressum

» Unsere MiniCity
MiniCity
» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Datentechnologien » NHibernate Join
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

NHibernate Join

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Coffeebean Coffeebean ist männlich
myCSharp.de-Team

images/avatars/avatar-3295.gif


Dabei seit: 25.08.2011
Beiträge: 1.951
Entwicklungsumgebung: VS 2005-2017, VS Code
Herkunft: Deutschland/Schweiz


Coffeebean ist offline

NHibernate Join

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

verwendetes Datenbanksystem: MSSQL 2008 R2


Hallo zusammen,

ich würde gerne aus einer View(!) Daten auslesen und von dieser eine Join machen auf eine Tabelle und mir von dieser nur 2 Spalten dazujoinen.

MyView
Spalte1
Spalte2
DieIdMitDerIchJoinenWill
Spalte4

MyTable
DieIdMitDerIchJoinenWill (PK)
Spalte2
Spalte3
Spalte4

Bisher sieht mein mapping so aus:

XML-Code:
  <class name="MyClass" table="MyView">

    <id name="Spalte1" column="Spalte1"/>
    <property name="Spalte2" column="Spalte2" />
    <property name="DieIdMitDerIchJoinenWill" column="DieIdMitDerIchJoinenWill" />
    ...

    <join table="MyTable">
      <key column="DieIdMitDerIchJoinenWill " foreign-key="DieIdMitDerIchJoinenWill "/>
      <property name="Spalte2" column="Spalte2" />
      <property name="Spalte3" column="Spalte3" />
    </join>
  </class>

Ich möchte also nur Spalte2 und 3 aus der Tabelle mit in meine Klasse aufnehmen. Aber das Join funktioniert nicht. Ich bekomme zwar ein Ergebnis zurück, aber es enthält statt 5xx Zeilen nur 20. Das macht mich stutzig. Wenn ich den Innerjoin händisch auf der DB ausführe geht es. Kommentiere ich den Join im obigen Mapping aus, geht es auch (Aber ohne meine 2 Werte aus der Tabelle...)

Viele liebe Grüsse

Coffeebean

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Coffeebean am 07.10.2011 16:30.

07.10.2011 16:24 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Florian Reischl Florian Reischl ist männlich
myCSharp.de-Poweruser/ Experte

images/avatars/avatar-2880.jpg


Dabei seit: 16.10.2007
Beiträge: 1.559
Entwicklungsumgebung: Visual Studio * | SQL Server *
Herkunft: München


Florian Reischl ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hi Coffeebean

Ich kann dir zwar nicht genau sagen woran es bei dem NH Mapping liegen könnte, aber schau dir doch im SQL Server Profiler mal an was für ein Statement an den Server geschickt wird, vielleicht hilft dir das auf die Spur.

Viel Glück
Flo
08.10.2011 17:17 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Coffeebean Coffeebean ist männlich
myCSharp.de-Team

images/avatars/avatar-3295.gif


Dabei seit: 25.08.2011
Beiträge: 1.951
Entwicklungsumgebung: VS 2005-2017, VS Code
Herkunft: Deutschland/Schweiz

Themenstarter Thema begonnen von Coffeebean

Coffeebean ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo Florian,

also sieht das Mapping für dich soweit richtig aus?

Das mit dem SQL Server Profiler schaue ich mir mal an, Danke.

Gruss

Coffeebean
08.10.2011 19:35 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Florian Reischl Florian Reischl ist männlich
myCSharp.de-Poweruser/ Experte

images/avatars/avatar-2880.jpg


Dabei seit: 16.10.2007
Beiträge: 1.559
Entwicklungsumgebung: Visual Studio * | SQL Server *
Herkunft: München


Florian Reischl ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von Coffeebean:
also sieht das Mapping für dich soweit richtig aus?

Keine Ahnung großes Grinsen - Das meinte ich mit "kann ich nicht sagen".

Grüße
Flo
08.10.2011 19:39 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
chavez
myCSharp.de-Mitglied

Dabei seit: 27.02.2007
Beiträge: 252
Entwicklungsumgebung: VS 2010
Herkunft: Österreich


chavez ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ich glaube das Mapping passt nicht, da id mit key gejoint wird.
Aber setz mal

XML-Code:
<property name="show_sql">true</property>

in deiner nhibernate config. Dann siehst du das Statement im Output Window welches abgesetzt wird, oder du nimmst eben den Profiler.
08.10.2011 20:27 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Coffeebean Coffeebean ist männlich
myCSharp.de-Team

images/avatars/avatar-3295.gif


Dabei seit: 25.08.2011
Beiträge: 1.951
Entwicklungsumgebung: VS 2005-2017, VS Code
Herkunft: Deutschland/Schweiz

Themenstarter Thema begonnen von Coffeebean

Coffeebean ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von chavez:
Ich glaube das Mapping passt nicht, da id mit key gejoint wird.

Kann man das ändern? Also ich dachte es geht, wie mein Mapping oben schon erkennen lässt.

Viele liebe Grüsse

Coffeebean
08.10.2011 21:06 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Coffeebean Coffeebean ist männlich
myCSharp.de-Team

images/avatars/avatar-3295.gif


Dabei seit: 25.08.2011
Beiträge: 1.951
Entwicklungsumgebung: VS 2005-2017, VS Code
Herkunft: Deutschland/Schweiz

Themenstarter Thema begonnen von Coffeebean

Coffeebean ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo zusammen,

die Vermutung war richtig. NHibernate joint auf die oben angegebene ID. Meine Frage ist nun, wie ich das umbiegen kann, dass er eben nicht die ID-Spalte von "MyView" nimmt, sondern eine andere.

Viele liebe Grüsse

Coffeebean

EDIT:

Ich setze jetzt das "Property-Ref" auf das Property der Klasse, das die Spalte angibt, mit der er joinen soll...aber ohne Erfolg.

XML-Code:
<join table="DataPoint">
      <key column="DieIdMitDerIchJoinenWill " foreign-key="DieIdMitDerIchJoinenWill"/>

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Coffeebean am 10.10.2011 14:12.

10.10.2011 14:07 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
chavez
myCSharp.de-Mitglied

Dabei seit: 27.02.2007
Beiträge: 252
Entwicklungsumgebung: VS 2010
Herkunft: Österreich


chavez ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ich kann morgen mal auf der Arbeit gucken. Ich glaube dass ich das auch mal so in einem unserer Projekte gebraucht habe.
10.10.2011 17:47 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Coffeebean Coffeebean ist männlich
myCSharp.de-Team

images/avatars/avatar-3295.gif


Dabei seit: 25.08.2011
Beiträge: 1.951
Entwicklungsumgebung: VS 2005-2017, VS Code
Herkunft: Deutschland/Schweiz

Themenstarter Thema begonnen von Coffeebean

Coffeebean ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo chavez,

das wäre nett...ich bin am Verzweifeln und kann mir ienfach nicht vorstellen, dass NHibernate so etwas nicht kann.

Gruss

Coffeebean
10.10.2011 17:51 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Coffeebean Coffeebean ist männlich
myCSharp.de-Team

images/avatars/avatar-3295.gif


Dabei seit: 25.08.2011
Beiträge: 1.951
Entwicklungsumgebung: VS 2005-2017, VS Code
Herkunft: Deutschland/Schweiz

Themenstarter Thema begonnen von Coffeebean

Coffeebean ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo zusammen,

ich habe mittlerweile ein wenig weitergeschaut. Das Problem ist nicht gelöst, ich habe sogar noch das heir gefunden:

 https://nhibernate.jira.com/browse/NH-1452

was mein Problem ziemlich genau beschreibt:

"The <join> element does not use the property-ref attribute on it's <key>.
It will always join to the child table by the primary key."

Ich habe NHibernate 2.1.2.4000. Ist die dort auch betroffen? Wenn dem so ist, kann ich mich dumm und dämlich probieren.

Gruss

Coffeebean
11.10.2011 09:43 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 6 Jahre.
Der letzte Beitrag ist älter als 6 Jahre.
Antwort erstellen


© Copyright 2003-2017 myCSharp.de-Team. Alle Rechte vorbehalten. 21.10.2017 01:40