gpt4 book ai didi

c# - 无法将类型 'System.Collections.ArrayList' 的对象强制转换为类型 'System.Collections.Generic.IEnumerable'

转载 作者:行者123 更新时间:2023-12-02 09:44:54 25 4
gpt4 key购买 nike

我最近将 Windows SmartClient 解决方案从 nHibernate 2.2 升级到 4.0,并且在写入数据库时​​遇到异常。

此代码引发异常:

this.session.Save(this.Location); // NHibernate.ISession
tx.Commit(); // exception thrown here

异常(exception)情况是:

'System.InvalidCastException' in NHibernate.dll System.InvalidCastException: Unable to cast object of type 'System.Collections.ArrayList' to type 'System.Collections.Generic.IEnumerable`1[System.Object]'.

正在保存的对象中有多个列表,以下是几个代表性的列表:

protected System.Collections.IList locationList;
public virtual System.Collections.IList AssociatedLocationList
{
get
{
if (this.locationList == null)
{
this.locationList = new System.Collections.ArrayList();
}
return this.locationList;
}
set { this.locationList = value; }
}
protected System.Collections.Generic.IList<Inspection> inspectionList;
public virtual System.Collections.Generic.IList<Inspection> InspectionList
{
get
{
if (this.inspectionList == null)
{
this.inspectionList = new System.Collections.Generic.List<Inspection>();
}

return this.inspectionList;
}
set { this.inspectionList = value; }
}

请注意,有些指定了类型,有些则没有。

一个建议here将该属性设置为 IList,但我已经这样了。

可以做什么?

最佳答案

NHibernate 4.0 中删除了对持久性非泛型集合的支持。改为转换为通用集合。

查看 NHibernate 4.0 release notes 中的重大更改列表.

关于c# - 无法将类型 'System.Collections.ArrayList' 的对象强制转换为类型 'System.Collections.Generic.IEnumerable',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37214725/

25 4 0