0

Fluent NHibernate で親の変更を許可したいと思います。
ここでIUserCollectionType、とを継承する 2 つのクラスを作成する必要があることを読みましたPersistentGenericBag<MyClass>Box例から独自のクラス名に変更すると、すべてが正常に機能します-1つのことを除いて: から継承するクラスでは、 が定義されていないため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 に答える