Мне нужна помощь в понимании этого вопроса. Я использую шаблон репозитория с ActiveRecordMediator. Я включил http-модуль области сеанса, пометил свои классы ActiveRecord (Lazy = true).
Проблема в том, что каждый раз, когда я выполняю FindAll или SlicedFindAll, посредник возвращает набор инициализированных элементов вместо прокси. Может ли кто-нибудь указать мне в правильном направлении?
Это мой репозиторий:
public interface IEntityRepository<TEntity>
{
IList<TEntity> FindAll(int page, int pageSize, out int resultCount);
}
public class EntityRepository<TEntity> : IEntityRepository<TEntity>
{
public virtual IList<TEntity> FindAll(int page, int pageSize)
{
return (IList<TEntity>)ActiveRecordMediator.SlicedFindAll(typeof(TEntity), (page * pageSize), pageSize);
}
}
[ActiveRecord(Lazy = true)]
public class DocumentEntity
{
private Guid _id;
private IList<DocumentVersionEntity> _versions;
[PrimaryKey(PrimaryKeyType.GuidComb, "Id")]
public virtual Guid Id
{
get { return _id; }
set { _id = value; }
}
[HasAndBelongsToMany(typeof(DocumentVersionEntity), RelationType.Bag, Table = "DocumentEntriesToDocumentVersions", ColumnKey = "DocumentEntryId", ColumnRef = "DocumentVersionId", Cascade = ManyRelationCascadeEnum.AllDeleteOrphan, Lazy = true)]
public virtual IList<DocumentVersionEntity> Versions
{
get { return _versions; }
set { _versions = value; }
}
}
[ActiveRecord(Lazy = true)]
public class DocumentVersionEntity
{
private Guid _id;
[PrimaryKey(PrimaryKeyType.GuidComb, "Id")]
public virtual Guid Id
{
get { return _id; }
set { _id = value; }
}
}
}
Когда я выполняю метод FindAll, все объекты в массиве Versions объекта DocumentEntity являются DocumentVersionEntity, а не DocumentVersionEntityProxy, и все они инициализируются.
Что я делаю неправильно?