这个问题早在 10 月就被问到了(无法投射对象类型的 nhibernate-collection-generic-persistentgenericbag)。基本上,我有一个 POCO,它具有由 List<ChildType> 建模的一对多关系。当您尝试在 NHibernate 中获取/保存它时,您会收到一个类型转换异常,说明它正在尝试从 NHibernate.Collection.Generic.PersistentGenericBag 转换到列表,但不能这样做。
Mauricio Scheffer 回答说您必须将您的 POCO 定义为 IList<> 而不是 List<>,并回答我还找到了其他地方。
我的问题是 POCO 也必须是 XmlSerializable,而 Xml 不知道如何序列化接口。
除了创建一个完全重复的数据传输对象并在它们之间进行映射之外,还有其他方法可以解决这个问题吗?此外,在我看来,这将是一个相对普遍的问题。NHibernate 不能只提供适当的 TypeCast 运算符吗?