我需要知道 JoinQueryOver 和 JoinAlias 之间有什么区别,以及何时使用它们?
从功能上来说,它们做同样的事情,创建与另一个实体的连接。唯一的区别是它们返回的内容。 JoinQueryOver 返回一个新的 QueryOver,其中当前实体是加入的实体,而 JoinAlias 返回将当前实体作为原始根实体的原始 QueryOver。
无论您使用哪一种都是个人喜好的问题:
(从http://nhibernate.info/doc/nh/en/index.html#queryqueryover http://nhibernate.info/doc/nh/en/index.html#queryqueryover)
IQueryOver<Cat,Kitten> catQuery =
session.QueryOver<Cat>()
.JoinQueryOver<Kitten>(c => c.Kittens)
.Where(k => k.Name == "Tiddles");
and
Cat catAlias = null;
Kitten kittenAlias = null;
IQueryOver<Cat,Cat> catQuery =
session.QueryOver<Cat>(() => catAlias)
.JoinAlias(() => catAlias.Kittens, () => kittenAlias)
.Where(() => kittenAlias.Name == "Tiddles");
功能相同。请注意第二个查询中如何明确引用 kittenAlias。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)