为什么在查询外键字段时使用连接?

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

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表中的FoodId外键)来查询Bars,从而生成带有连接的SQL!

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

谢谢

大卫


这种行为是由NHibernate.Linq引起的(我相信它涉及到表达式转换成查询的ICriteria表示的方式)。 据我所知,直接使用Nhibernate.Linq是没有办法的,但是你可以通过直接使用HQL或ICriteria来获得你想要的结果。

链接地址: http://www.djcxy.com/p/60985.html

上一篇: why does it use join when querying foreign key field?

下一篇: NHibernate explicit fluent column mapping