Offtopic, aber was soll's:
NHibernate erlaubt Updates/Deletes in HQL, also gegen deine Mappings, nicht direkt gegen die
DB-Struktur.
Wennu gerne alle Hans' mit Nachnamen Meyer oder Schulz umbenennen willst ginge das so:
Code:
class Trööt
{
public virtual string FirstName{get;set;}
public virtual string LastName{get;set;}
}
Code:
session.CreateQuery("update Trööt set FirstName = 'Egon' where FirstName = 'Hans' and LastName in (:s, :m)")
.SetParameter("s", "Schulz")
.SetParameter("m", "Meyer")
.ExecuteUpdate();
Bei RDBMS', die Batches verstehen, wird es auch sehr viele Objekt-Änderungen in einem Rountrip abschicken können.
Hassu also lauter neue geänderte Objekte, die du wieder zurückschreibst, ist die Anzahl der Calls zur
DB nur durch die max. Zahl von Parametern beschränkt (IMO 2000 für
MSSQL).
Bei Oracle wird dann Array/Bulk DML benutzt, was *brutal* schnell ist.
Zum Thema:
Das ist mir hier irgendwo unterm Radar durchgeflogen...
Wenn dich dazu (auch wenn's vllt zu spät ist) mehr Details interessieren, könntest du vllt irgendein Beispiel aus den Fingern saugen.
Und ich könnte dir zeigen, wie man das mit XLinq, XSD, und dem ORM
deiner Wahl löst.