Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
NHibernate Bag (doppelte SQL-Statements)
Savage
myCSharp.de - Member



Dabei seit:
Beiträge: 94

Themenstarter:

NHibernate Bag (doppelte SQL-Statements)

beantworten | zitieren | melden

hallo,
ich habe eine entität, welche eine collection beinhaltet (UserRoles):

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Gware.Core.Domain" assembly="Gware.Core" default-lazy="true">
  <class name="Gware.Core.Domain.User, Gware.Core" table="Users" lazy="true">
    <id name="ID" column="UID" type="Int64" unsaved-value="0">
      <generator class="identity" />      
    </id>
    <property name="Username" column="Username" unique="true" type="String" length="50" not-null="true" />
    <property name="Password" column="Password1" type="String" length="50" />    
    <bag name="UserRoles" table="UserInRole" lazy="true" cascade="all-delete-orphan">
      <key column="UID" />
      <one-to-many class="Gware.Core.Domain.UserRoles, Gware.Core" />
    </bag>

    </class>
</hibernate-mapping>

UserRoles ist dabei eine generische liste. Wenn ich nun einen eintrag darin lösche oder hinzufüge, dann führt er immer 2 statements aus.

beim löschen


NHibernate: UPDATE UserInRole SET UID = null WHERE UID = @p0 AND uinrID = @p1; @p0 = '1', @p1 = '5'
NHibernate: DELETE FROM UserInRole WHERE uinrID = @p0; @p0 = '5'

beim hinzufügen


NHibernate: INSERT INTO UserInRole (DateAdded, UID, RID) VALUES (@p0, @p1, @p2); select SCOPE_IDENTITY(); @p0 = '06.05.2009 11:47:43', @p1 = '1', @p2 = '3'
NHibernate: UPDATE UserInRole SET UID = @p0 WHERE uinrID = @p1; @p0 = '1', @p1 = '6'

btw... nhibernate benutzt mssql2005

warum haut er mir immer 2 statements raus?
private Nachricht | Beiträge des Benutzers
Savage
myCSharp.de - Member



Dabei seit:
Beiträge: 94

Themenstarter:

beantworten | zitieren | melden

habe den fehler nun selbst gefunden.

lösung falls es jemand mal braucht:
hatte auf der anderen entität auch eine assocation drinnen, also eine bidirectionale. somit gehört an einer stelle noch ein inverse="true" rein.
private Nachricht | Beiträge des Benutzers