为什么在查询外键字段时使用连接?
我有一个对象模型有点像这样:
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