如何使用自动映射在fluent-hibernate中将属性设置为延迟加载?

时间:2011-04-11 06:33:07

标签: nhibernate fluent-nhibernate automapping

我正在使用flent-hibernate进行自动映射进行映射。我想如果有一种方法可以使用IConvention或类似方法将引用属性设置为'lazy-loading',而不是使用单独的映射类?

2 个答案:

答案 0 :(得分:2)

首先,我认为懒惰是默认行为 你可以很容易地测试它 -

[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 :(得分:1)

要调整自动对象,您可以使用IAutoMappingOverride<SomeEntity>。您可以更改您需要的确切属性