0
我希望我的應用程序在默認情況下不需要延遲加載。然而在某些情況下(我想明確設置),我需要延遲加載。默認不懶惰,在Fluent NHibernate中有例外
所以,我的默認約定(最後一行swithes關閉默認延遲加載):
Fluently.Configure().Database(driverConfig)
.Mappings(m => m
.FluentMappings.AddFromAssemblyOf<Limit>()
.Conventions.AddFromAssemblyOf<Limit>()
.Conventions.Add(PrimaryKey.Name.Is(x => x.EntityType.Name + "Id"))
.Conventions.Add(DefaultCascade.All())
.Conventions.Add(ForeignKey.EndsWith("Id"))
.Conventions.Add(ConventionBuilder.Id.Always(x => x.GeneratedBy.Native()))
.Conventions.Add(ConventionBuilder.Id.Always(x => x.Unique()))
.Conventions.Add(Cache.Is(x => x.NonStrictReadWrite()))
.Conventions.Add(DefaultLazy.Never())
而且我想這許多關係是延遲加載:
HasMany(x => x.TestCaseOrdered).KeyColumn("ProductVariantId").LazyLoad();
但是,它不是」懶惰加載。我試圖用LazyLoad.Never()替換DefaultLazy.Never()約定,但它不起作用(我無法理解它們之間的區別)。
如何輕鬆關閉除一個具體的所有情況下的延遲加載?
工作對我來說,你怎麼確定它是否lazyloaded與否? – Firo
在搜索測試代碼時,我在哪裏檢查發現我總是以非懶惰方式檢索它們。謝謝你的提示 :) – Archeg