Как установить свойство как lazyloading в fluent-hibernate с автоматическим отображением? - PullRequest
0 голосов
/ 11 апреля 2011

Я использую автоматическое сопоставление с Flent-Hibernate для сопоставления. Я хотел бы, если есть способ установить свойство ссылки как «ленивая загрузка» с использованием IConvention или аналогичного, а не с помощью отдельного класса отображения?

Ответы [ 2 ]

2 голосов
/ 11 апреля 2011

во-первых, я считаю, что ленивый - это поведение по умолчанию.
вы можете довольно легко протестировать его -

[TestMethod]
        public void TestLazyLoading()
        {
            Airport firstObject = null;
            using (ISession session = this.SessionFactory.OpenSession())
            {
                using (ITransaction transaction = session.BeginTransaction())
                {
                    ObjectDAO dao = new ObjectDAO(session, CurrentUser);
                    firstObject = dao.GetObject();
                    transaction.Commit();
                }
            }
            Assert.IsFalse(NHibernateUtil.IsInitialized(firstObject.Children));

        }

, если вы хотите явно указать lazy / eager, используйте следующее внутри вашего класса MappingOverride:

mapping.HasMany(x => x.Employees)
                //.Not
                .LazyLoad()
                ;
1 голос
/ 11 апреля 2011

Для настройки автоопределений вы можете использовать IAutoMappingOverride<SomeEntity>. Вы можете изменить там точное свойство, которое вам нужно

...