C# 强制转换ICollection以重写Get孤儿()

C# 强制转换ICollection以重写Get孤儿(),c#,nhibernate,casting,C#,Nhibernate,Casting,我想允许以流利的NHibernate重新租用。 我读到我必须创建两个类,它们继承自IUserCollectionType和PersistentGenericBag。如果我将示例中的Box更改为我自己的类名,那么一切都可以正常工作-除了一件事:在继承自PersistentGenericBag的类中,我无法重写get孤儿(),因为Cast()不是为ICollection定义的 这就是我想要的: public override ICollection GetOrphans(object snapsho

我想允许以流利的NHibernate重新租用。
我读到我必须创建两个类,它们继承自
IUserCollectionType
PersistentGenericBag
。如果我将示例中的
Box
更改为我自己的类名,那么一切都可以正常工作-除了一件事:在继承自
PersistentGenericBag
的类中,我无法重写
get孤儿()
,因为
Cast()
不是为
ICollection
定义的 这就是我想要的:

public override ICollection GetOrphans(object snapshot, string entityName)
{
    var orphans = base.GetOrphans(snapshot, entityName)
        .Cast<MyCalss>()
        .Where(b => ReferenceEquals(null, b.CurrentStorage))
        .ToArray();

    return orphans;
}
public override ICollection getOlivers(对象快照、字符串entityName)
{
var-origins=base.getorigins(快照,entityName)
.Cast()
其中(b=>ReferenceEquals(null,b.CurrentStorage))
.ToArray();
遣返孤儿;
}
如何在
I集合
上使用
Cast

编辑
这正是我得到的错误(不幸的是,它是德语):
Fehler 1“System.Collections.Generic.ICollection”enthält keine Definition für“Cast”,以及es konnte keine erweiterungsmethod“Cast”gefunden werden,die ein erstes Argument vom Typ“System.Collections.Generic.ICollection”akzeptiert。(是否在Assemblyverweis中使用Direktive命令?

系统中的一种生活方式。Linq
命名空间

要使用扩展方法,您需要使用
using
指令添加它的名称空间

因此,只需使用将以下
添加到您的文件中,就可以了:

using System.Linq;

你是否有必要
使用System.Linq在您的文件中?您得到的确切错误消息是什么?谢谢!现在它工作了!我以为VisualStudio会告诉我是否必须添加using指令,但它没有。我使用System.Linq添加了
a现在我可以访问
Cast()
你能把你的提示作为答案吗?我无法接受;)