代码之家  ›  专栏  ›  技术社区  ›  Trent

Linq for NHibernate-对<many to one>外键进行过滤会导致额外的查找

  •  1
  • Trent  · 技术社区  · 16 年前


        var list1 = (from ut in session.Linq<UserThings>()
        where ut.User.ID == 10
        select ut).ToList();
    
        var list2 = session.CreateCriteria(typeof (UserThings), "ut")
        .Add(Expression.Eq("ut.User.ID", 10))
        .List<UserThings>();
    

    2 回复  |  直到 16 年前
        1
  •  1
  •   reach4thelasers    16 年前

        2
  •  1
  •   Andriy Volkov    16 年前

    var uthings = session.Linq<UserThings>();
    uthings.QueryOptions.SetCachable(true);
    uthings.QueryOptions.RegisterCustomAction(c => c.SetFetchMode("/UserThing/User", FetchMode.Eager))
    return uthings.Where(ut => ut.User == user);
    

    NHLQ-35