Неверный индекс n для этой SqlParameterCollection с Count = m - PullRequest
2 голосов
/ 23 февраля 2011

Я получаю эту неприятную ошибку в Castle Active Record (обернутую вокруг NHibernate), когда пытаюсь сохранить класс:

Неверный индекс n для этой коллекции SqlParameterCollection с Count = m

Я знаю, что эта ошибка вызвана тем, что свойство отображается в классе несколько раз, однако я не знаю, как его обойти.У меня есть два дочерних класса, которые оба отображаются обратно в рассматриваемый класс, используя тот же столбец (IpAddressNumber).Также IpAddressNumber является первичным ключом класса, в результате чего NHibernate пытается сопоставить свойство IpAddressNumber три раза (просто предположение.)

Вот класс:

[ActiveRecord(Lazy=true)]
    public class DeviceConfiguration : UsersDatabase<DeviceConfiguration>
    {
        [PrimaryKey]
        public virtual long IPAddressNumber { get; set; }

        [BelongsTo("IPAddressNumber", Lazy = FetchWhen.OnInvoke)]
        public virtual Vehicle Vehicle { get; set; }

        [BelongsTo("IPAddressNumber", Lazy = FetchWhen.OnInvoke)]
        public virtual JBusConfiguration JBusConfiguration { get; set; }
}

Любая помощьбыл бы очень признателен ...

1 Ответ

1 голос
/ 25 апреля 2011

В итоге мне пришлось просто удалить вторую ассоциацию, чтобы обойти эту проблему.Не лучшее решение, но единственное, которое я смог найти.

...