C# NHibernate:对关系和主键使用一列,此SqlParameterCollection的索引无效
我已经为我的NHibernate数据库模型定义了一个复合id。我也使用了外键关系中定义的一列。如果使用NHibernate插入对象,则会出现以下异常: System.IndexOutOfRangeException:此SqlParameterCollection的索引7无效,计数为7。C# NHibernate:对关系和主键使用一列,此SqlParameterCollection的索引无效,c#,.net,nhibernate,foreign-keys,composite-id,C#,.net,Nhibernate,Foreign Keys,Composite Id,我已经为我的NHibernate数据库模型定义了一个复合id。我也使用了外键关系中定义的一列。如果使用NHibernate插入对象,则会出现以下异常: System.IndexOutOfRangeException:此SqlParameterCollection的索引7无效,计数为7。 位于System.Data.SqlClient.SqlParameterCollection.RangeCheck(Int32索引) 位于System.Data.SqlClient.SqlParameterCol
位于System.Data.SqlClient.SqlParameterCollection.RangeCheck(Int32索引)
位于System.Data.SqlClient.SqlParameterCollection.GetParameter(Int32索引)
在NHibernate.Type.Int32Type.Set处(IDBRS命令,对象值,Int32索引)
在NHibernate.Type.NullableType.NullSafeSet(IDbCommand cmd,Object value,Int32 index)中
在NHibernate.Type.NullableType.NullSafeSet(IDBST命令,对象值,Int32索引,ISessionImplementor会话)
在NHibernate.Type.ComponentType.NullSafeSet(IDBST命令,对象值,Int32 begin,ISessionImplementor会话)
在NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate(对象id、对象[]字段、对象rowId、布尔[]includeProperty、布尔[][][]includeColumns、Int32表、IDbCommand语句、ISessionImplementor会话、Int32索引)
在NHibernate.Persister.Entity.AbstractEntityPersister.Insert(对象id、对象[]字段、布尔值[]notNull、Int32 j、SqlCommandInfo sql、对象obj、ISessionImplementor会话)
在NHibernate.Persister.Entity.AbstractEntityPersister.Insert(对象id、对象[]字段、对象obj、ISessionImplementor会话)
在NHibernate.Impl.statelessessionImpl.Insert(字符串entityName,对象实体)
在NHibernate.Impl.statelessessionImpl.Insert(对象实体)处 是否可以将一列用于两个不同的目的(外键关系和主键) C#NHibernate型号
public const string STR_ID = "Id";
public const string STR_SHARDKEY = "ShardKey";
public const string STR_OTHERMODEL = "OtherModel";
[CompositeId(-4)]
[KeyProperty(-3, Name = STR_ID, Column = STR_ID)]
[KeyProperty(-2, Name = STR_SHARDKEY , Column = STR_SHARDKEY )]
[Generator(-1, Class = "guid.comb")]
public virtual Guid? Id { get; set; }
[Column(Name = STR_SHARDKEY )]
public virtual int ShardKey{ get; set; }
[ManyToOne(0)]
[Column(1, Name = STR_OTHERMODEL )]
[Column(2, Name = STR_SHARDKEY )]
public virtual OtherModel OtherModel { get; set; }
XML映射