Hola amigos, tengo un problemita en la actualizacion de datos en una
relacion de uno a muchos, las clases que interactuan son Authors,
Awards, Books, bueno entre las clases Authors y Awards la relacion es
de one-to-many, y entre las clases Authors y Books es de many-to-many.
estos son los mapeos
<class name="Autor.Core.BusinessObjects.Author, Autor" table="[dbo].
[Authors]" lazy="true">
<id name="Id" column="[AuthorId]">
<generator class="assigned" />
</id>
<property name="FirstName" column="[FirstName]" />
<property name="LastName" column="[LastName]" />
<bag name="Awards" lazy="true" cascade="all-delete-orphan"
inverse="true" >
<key column="[AuthorId]"></key>
<one-to-many class="Award"></one-to-many>
</bag>
<bag name="Users" table="[dbo].[Users_Authors]" lazy="true"
cascade="all" inverse="false" >
<key column="[AuthorId]"></key>
<many-to-many column="[UserId]" class="User" />
</bag>
<bag name="Books" table="[dbo].[Authors_Books]" lazy="true"
cascade="all" inverse="false" >
<key column="[AuthorId]"></key>
<many-to-many column="[BookId]" class="Book" />
</bag>
</class>
<class name="Autor.Core.BusinessObjects.Award, Autor" table="[dbo].
[Awards]" lazy="true">
<id name="Id" column="[AwardId]">
<generator class="assigned" />
</id>
<property name="Dates" column="[Dates]" />
<property name="Description" column="[Description]" />
<many-to-one name="Author" column="[AuthorId]" class="Author" />
</class>
<class name="Autor.Core.BusinessObjects.Book, Autor"
table="[dbo].[Books]" lazy="true">
<id name="Id" column="[BookId]">
<generator class="native" />
</id>
<property name="Isbn" column="[Isbn]" />
<property name="Title" column="[Title]" />
<bag name="Reviews" lazy="true" cascade="all-delete-orphan"
inverse="true" >
<key column="[BookId]"></key>
<one-to-many class="Review"></one-to-many>
</bag>
<bag name="Authors" table="[dbo].[Authors_Books]" lazy="true"
cascade="all" inverse="false" >
<key column="[BookId]"></key>
<many-to-many column="[AuthorId]" class="Author" />
</bag>
</class>
y este es el metodo de actualizacion
using (IAuthorManager manager = new
ManagerFactory().GetAuthorManager()) {
try {
manager.Session.BeginTransaction();
int i = 0;
foreach (var award in author.Awards) {
award.Id = author.Id + (++i);
award.Author = author;
}
manager.Update(author);
manager.Session.CommitTransaction();
return true;
} catch (Exception ex) {
manager.Session.RollbackTransaction();
Console.WriteLine(ex);
return false;
}
}
El problema esta que cuando intento hacer una actualizacion (quitar un
registro) entre la clases Authors y Awards el ultimo registro en la
tabla se duplica, estuve buscando en google alguna solución pero no
encontre ... nose realmente que estare haciendo mal.. nose si alguien
me podria ayudar en eso.
De antemano les agradezco su ayuda.
--
Para escribir al Grupo, hágalo a esta dirección:
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano