Ich brauche Hilfe, herauszufinden, wie es weitergeht. Ich baue eine App eine Plattensammlung zu verwalten, und ich habe die folgenden Abbildungen.
<class name=Soulful.Core.Domain.Model.Record,Soulful.Core table=Record>
<id name=Id type=Int32 unsaved-value=0>
<generator class=native />
</id>
<many-to-one name=Artist class=Soulful.Core.Domain.Model.Artist,Soulful.Core foreign-key=FK_Artist_Id cascade=all>
<column name=ArtistId not-null=true />
</many-to-one>
.... more properties
</class>
<class name=Soulful.Core.Domain.Model.Artist,Soulful.Core table=Artist>
<id name=Id type=Int32 unsaved-value=0>
<generator class=native />
</id>
<property name=Name type=string not-null=true />
</class>
Ich mag viele Datensätze zu einem Künstler kartieren und das funktioniert ganz gut. Aber ich laufe in Schwierigkeiten, wenn ich versuche, einen Datensatz zu löschen. Was ich möchte, ist zu tun:
Löschen Sie die Aufzeichnung und den Künstler, wenn keine anderen Aufzeichnungen zu diesem Künstler verbunden sind. Wenn Datensätze an die Künstler verbunden sind, löschen Sie einfach den Datensatz.
Mit dem aktuellen Mapping erhalte ich die folgende Fehlermeldung, wenn ich session.Delete (Aufnahme) nenne ;:
NHibernate.ObjectDeletedException: deleted object would be re-saved by cascade (remove deleted object from associations)[Soulful.Core.Domain.Model.Artist#3]
Hier ist, was meine DeleteMethod wie folgt aussieht:
public virtual void Delete(T entity)
{
using (var session = GetSession())
using (var transaction = session.BeginTransaction())
{
try
{
session.Delete(entity);
transaction.Commit();
}
catch (HibernateException)
{
transaction.Rollback();
throw;
}
}
}
Was würde ich tun muss, um es so läuft ich es will? Bitte zögern Sie nicht klar darzulegen.
Aktualisieren Sie Ich glaube , ich bin gefragt , ob ich manuell Löschen von Künstlern behandeln müssen?