我对NH和FNH很新。我想映射一个longs列表,我收到错误:
创建SessionFactory时使用了无效或不完整的配置。
双重内在异常:
{“(XmlDocument)(15,8):XML验证错误:命名空间'urn:nhibernate-mapping-2.2'中的元素'list'在命名空间'urn中具有无效的子元素'one-to-many': nhibernate-mapping-2.2'。期望的可能元素列表:'命名空间'urn:'nhibernate-mapping-2.2'中的'loader,sql-insert,sql-update,sql-delete,sql-delete-all,filter'。“}
我的实体:
public class XPTable
{
public virtual int I3D { get; set; }
public virtual IList<long> XPRequired { get; set; }
public XPTable()
{
XPRequired = new List<long>();
}
}
我的映射:
public class XPTableMaps : ClassMap<XPTable>
{
public XPTableMaps()
{
Table("XPTable");
Id(id => id.I3D);
//this line causes the error
HasMany<long>(many => many.XPRequired).AsList().Element("XPRequired");
}
}
我使用NHibernate 3.1.0,FNH 1.0
这肯定是导致问题的HasMany映射,因为当我发表评论时,程序运行得很好。 SQL 2008表中的I3D列是标识,表的名称/类型以及列与映射匹配。如果我省略.AsList(),那么错误消息保持不变,除了它引用'bag'而不是'list'。添加Inverse()和/或Cascade.Whatever()也没有效果。
有什么想法吗?