2010-12-30 6 views
0

Gibt es eine Möglichkeit, ich kann Nhibernate sagen, zukünftige Änderungen an einer Reihe von Objekten zu ignorieren, die damit abgerufen werden?Temp Änderung von NHibernate Entities

public ReturnedObject DoIt() 
{ 
    List<MySuperDuperObject> awesomes = repository.GetMyAwesomenesObjects(); 
    var sp = new SuperParent(); 
    BusinessObjectWithoutNHibernateAccess.ProcessThese(i, awesomes,sp) 
    repository.save(sp); 
    return i; 
} 

public ReturnedObject FakeIt() 
{ 
    List<MySuperDuperObject> awesomes = repository.GetMyAwesomenesObjects(); 
    var sp = new SuperParent(); 
    // should something go here to tell NHibernate to ignore changes to awesomes and sp? 
    return BusinessObjectWithoutNHibernateAccess.ProcessThese(awesomes,sp) 
} 

Antwort

2

Sie können die Objekte aus der Sitzung vertreiben. Siehe die Methode ISession.Evict.

+0

Die Signatur nimmt nur Objekt .... wird dies an der gesamten Sammlung arbeiten oder ... ist eine Schleife erforderlich? Verschachtelt es den gesamten Objekt-Graphen oder nur das bestimmte Objekt? –

+0

an jeden, der diese Frage liest .... keine Schleife ist erforderlich, wenn Sie einen Gegenstand vertreiben, dessen Sammlungen ebenfalls geräumt werden. –