当我尝试保存一个类时,我在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; }
}
非常感谢任何帮助......
答案 0 :(得分:1)
我最终不得不完全删除第二个关联来解决这个问题。不是一个很好的解决方案,但是我能找到的唯一解决方案。