ペドロ、
NHibernate コードを検索すると、IPersistentCollection (@event.Collection) の GetValue メソッドに関する次のドキュメントが見つかりました。
/// <summary>
/// Return the user-visible collection (or array) instance
/// </summary>
/// <returns>
/// By default, the NHibernate wrapper is an acceptable collection for
/// the end user code to work with because it is interface compatible.
/// An NHibernate PersistentList is an IList, an NHibernate PersistentMap is an IDictionary
/// and those are the types user code is expecting.
/// </returns>
object GetValue();
これで、コレクションを IEnumerable にキャストでき、問題なく動作すると結論付けることができます。
バッグをマッピングする小さなサンプルを作成したところ、次のようになりました。
public void OnPostUpdateCollection(PostCollectionUpdateEvent @event)
{
foreach (var item in (IEnumerable)@event.Collection.GetValue())
{
// DO WTVR U NEED
}
}
お役に立てれば!
フィリペ