0

我想允许在 Fluent NHibernate 中重新做父母。
在这里,我读到我必须创建两个继承自IUserCollectionType和的类PersistentGenericBag<MyClass>。如果我Box从示例更改为我自己的类名,一切正常 - 除了一件事:在继承自的类中,PersistentGenericBag<MyClass>我无法覆盖GetOrphans(),因为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;
}

我如何Cast在 上使用ICollection

编辑
这是我得到的确切错误(不幸的是它是德语):Fehler 1 "System.Collections.Generic.ICollection<T>" enthält keine Definition für "Cast", und es konnte keine Erweiterungsmethode "Cast" gefunden werden, die ein erstes Argument vom Typ "System.Collections.Generic.ICollection<T>" akzeptiert. (Fehlt eine Using-Direktive oder ein Assemblyverweis?)

4

1 回答 1

1

Cast<T>是一个存在于命名空间中的扩展方法System.Linq

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

所以只需将以下内容添加using到您的文件中,它应该可以工作:

using System.Linq;
于 2012-11-01T13:30:06.713 回答