Fluent-Nhibernate References and PropertyRef Doing a Select With Lazy Load

后端 未结 2 1457
逝去的感伤
逝去的感伤 2021-01-06 13:12

I am using PropertyRef for one of my References properties. With LazyLoad() it still does a Select and loads the User ent

相关标签:
2条回答
  • 2021-01-06 13:47

    Has to do with property-ref see NHibernate creates proxy via session.Load(), but not via Linq or Criteria API

    And not that you asked, but also consider that many-to-one with proxy does not allow you to do type-checking if you subclass User, see http://ayende.com/Blog/archive/2010/01/28/nhibernate-new-feature-no-proxy-associations.aspx

    0 讨论(0)
  • 2021-01-06 14:10

    I don't think this is a bug in NHibernate. It depends on your mapping.

    First, remember that the reference map will join the key (primary key and foreign key) between 2 mapping tables. To prevent SELECT + 1, just ignore the key joint.

    References(x => x.SalesPerson)
                        .LazyLoad()
                        .PropertyRef(x => x.Username)
                        WithForeignKeyName("none") //disable key join.
    
    0 讨论(0)
提交回复
热议问题