KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have an odd problem in my current project. Lazy loading for queries does not work. When I query a list, nhibernate fetches all associations separately. I extracted small parts of it and put it into a separate solution. Basically what I've got now, is a Account-Table and a AccountSync-Table. Both have an ID and a URL, while the ID is just a db-guid. My classes are: public class HippoAccount { public virtual Guid Id { get; set; } public virtual string Url { get; set; } public virtual HippoAccountSync Sync { get; set; } } public class HippoAccountSync { public virtual Guid Id { get; set; } public virtual string Url { get; set; } public virtual HippoAccount Account { get; set; } } When I now load a object via it's guid: var account = session.Load<HippoAccount>(accountId); Console.WriteLine(NHibernateUtil.IsPropertyInitialized(account, "Sync")) ... it returns false and account itself is a proxy. But when loading a list via the criteria API: var account = (HippoAccount)session .CreateCriteria(typeof (HippoAccount)) .Add(Restrictions.Eq("Id", accountId)) .List()[0]; ... the property Sync gets initialized (firing a second select query), and the returned object is not a proxy. Is that default behaviour? What am I getting wrong? The mapping is: <class name="HippoAccount" table="AllAccounts"> <id name="Id" type="guid"> <generator class="guid"/> </id> <property name="Url" /> <many-to-one class="HippoAccountSync" name="Sync" not-found="ignore" property-ref="Url"> <column name="url" /> </many-to-one> </class> <class name="HippoAccountSync" mutable="false" table="Accounts"> <id name="Id" type="guid"> &l
Tags (comma-separated)
Save Edits
Cancel