Я действительно нашел решение, используя .Where ().Моя ситуация немного отличается, у меня есть objectA и objectB.objectA содержит objectB, но objectB также содержит коллекцию objectBs.
"objectA": {"someProp": "(string)", "objectB": {"someProp": "(string)", "comeCol ": [" (objectB) "]}}
Таким образом, свойство" Parent "для objectB может иметь тип objectB или objectA, поэтому мне нужно было использовать ReferencesAny при отображении objectB.
Отображение выглядит как
ReferencesAny( x => x.Parent )
.IdentityType< int >()
.MetaType< string >()
.EntityTypeColumn( "ParentType" )
.EntityIdentifierColumn( "ParentId" )
.AddMetaValue< objectA >( "E" )
.AddMetaValue< objectB >( "S" )
.Access.Property()
.LazyLoad()
.Cascade.All();
Все это хорошо работает при сохранении, однако моя проблема возникла при извлечении, потому что фреймворк не говорил, что извлекать, и просто извлекал все.
Итак, теперь приведено сопоставление коллекции, которая устранила проблему:
HasMany( x => x.objectBs )
.KeyColumn( "ParentId" )
.Where( "ParentType = 'S'" )
.Cascade.All()
.LazyLoad();
Надеюсь, что это поможет любому, кто находится в такой же ситуации:)