NHibernate Linq - 为什么在查询外键字段时使用join?

时间:2010-08-09 10:07:34

标签: nhibernate join fluent-nhibernate linq-to-nhibernate

我有一个像这样的对象模型:

public class Foo
{
  public int Id {get;set;}
  public string FooName {get;set;}
}

public class Bar
{
  public int Id {get;set;}
  public Foo Foo {get;set;}
}

这些以典型的一对多方式对应于数据库中的表。

使用Linq到NHibernate根据他们的Foo.Id属性查询Bars(它应该简单地查询Bars表中的FoodId外键)生成带连接的SQL!

有谁知道为什么会这样?这是标准的NHibernate行为吗?或者与Linq提供商有关?或者甚至可能是FluentNHibernate(我用于映射)?

由于

大卫

1 个答案:

答案 0 :(得分:1)

此行为是由NHibernate.Linq引起的(我认为它与表达式转换为查询的ICriteria表示形式的方式有关)。据我所知,没有办法直接使用Nhibernate.Linq,但你可以直接使用HQL或ICriteria来实现你想要的结果。