We have a bag of ContentPages where the PageNumber is unique in the
database.
When we remove one item form the list and then renumber the
PageNuimbers and try to save it it first tries to update the
PageNumbers in the database and we get an error since there is a
unique contraint..
What we want is for nHinbernate to Delte the item that is no longer in
the list first and then do the update but hNibernate is trying to do
the update first..this seem slike a very odvious thing so what are we
missing here?
Thanks in advance
======================================
Related Code:
Here is the contentItem mapping file for this bag:
<bag name="ContentPages" table="ContentPage" inverse="true"
lazy="false" order-by="PageNumber" cascade="all-delete-orphan">
<key column="ContentItemId" not-null="true"/>
<one-to-many class="ContentPage"></one-to-many>
</bag>
Here is the code to add and remove an item:
/// <summary>
/// add content page to the list of content pages
/// </summary>
/// <param name="contentPage">content page to be added</param>
public virtual void AddContentPage(ContentPage contentPage)
{
contentPage.ContentItem = this;
contentPage.PageNumber = this.contentPageNumber++;
this.contentItemToPageList.Add(contentPage.PageNumber,
contentPage);
// this.ContentPages =
this.contentItemToPageList.Values.ToList();
if (this.ContentPages == null)
{
this.ContentPages = new List<ContentPage>();
}
this.ContentPages.Add(contentPage);
}
/// <summary>
/// add content page to the list of content pages
/// </summary>
/// <param name="contentPage">content page to be added</param>
public virtual void RemoveContentPage(ContentPage contentPage)
{
this.ContentPages.Remove(contentPage);
this.contentPageNumber = (short)(this.ContentPages.Count +
1);
}
Here is the contentPage mapping file:
<?xml version="1.0"?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" auto-
import="true"
namespace="EET.DomainModel.Entities"
assembly="EET.DomainModel">
<class name="ContentPage" table="ContentPage" lazy="false">
<id
name="ContentPageId"
column="ContentPageId"
type="int">
<generator class="identity"/>
</id>
<many-to-one name="ContentItem" column="ContentItemId" not-
null="true" ></many-to-one>
<property name="PageNumber" column="PageNumber" type="short" not-
null="true" />
<property name="Title" column="Title" type="String"/>
<property name="Body" column="Body" type="String" not-null="true"/
>
<property name="PreviousPageTeaser" column="PreviousPageTeaser"
type="String"/>
<property name="NextPageTeaser" column="NextPageTeaser"
type="String"/>
</class>
</hibernate-mapping>
--
You received this message because you are subscribed to the Google Groups
"nhusers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/nhusers?hl=en.