具有Count = m的此SqlParameterCollection的索引n无效

时间:2011-02-23 20:36:20

标签: nhibernate activerecord castle-activerecord

当我尝试保存一个类时,我在Castle Active Record中遇到了这个令人讨厌的错误(包裹在NHibernate中):

此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 个答案:

答案 0 :(得分:1)

我最终不得不完全删除第二个关联来解决这个问题。不是一个很好的解决方案,但是我能找到的唯一解决方案。