I Prefer Jim Developer James Schubert shares his code and his thoughts.

3Mar/10Off

ArgumentOutOfRangeException : Index was out of range. Fluent NHibernate commit

I came across the error

ArgumentOutOfRangeException : Index was out of range.

while trying to perform a commit on a single entity with 4 nested entities and 3 properties.

I tracked the problem down to one two entities: Country and "Post" which I will refer to as Location.

The objects looked like:

public class Location
{
...
        // public virtual string ContactCountry { get; set; }
...
        public virtual Country Country { get; set; }
}

public class Country
{
...
        public virtual IList<Location> Locations { get; set; }
}

The problem came from the Fluent NHibernate mapping referring to a property on the COUNTRY_CODE field and specifying a HasMany relationship to Country on the same column.

This is an oddity, for sure. But, the better (object-oriented and proper) way to do it would be to change ContactCountry to a getter and return the Country.Code property (if ContactCountry is used elsewhere). Or, call Location.Country.Code only.

Removing the property and mapping for ContactCountry fixed the problem.

No related posts.

flattr this!

Comments (0) Trackbacks (0)

Sorry, the comment form is closed at this time.

Trackbacks are disabled.