Join 使用Critera或QueryOver API将一列连接到多个表
路线由航路点组成。一个航路点可以存在于多条航路上。一条路线可以由多个销售人员提供服务 要获取销售人员需要访问的航路点,我可以使用以下简化SQL:Join 使用Critera或QueryOver API将一列连接到多个表,join,nhibernate,criteria,queryover,Join,Nhibernate,Criteria,Queryover,路线由航路点组成。一个航路点可以存在于多条航路上。一条路线可以由多个销售人员提供服务 要获取销售人员需要访问的航路点,我可以使用以下简化SQL: SELECT WP.* FROM Waypoint WP JOIN RouteWaypoint RWP ON RWP.RouteId = WP.RouteId JOIN Route R ON RWP.RouteId = R.RouteId JOIN RouteSalesMan RMS ON RMS.Rou
SELECT WP.*
FROM Waypoint WP
JOIN RouteWaypoint RWP
ON RWP.RouteId = WP.RouteId
JOIN Route R
ON RWP.RouteId = R.RouteId
JOIN RouteSalesMan RMS
ON RMS.RouteId = R.RouteId
WHERE RMS.SalesManId = 5
AND R.Status = 1 -- Only active routes
如何使用NHibernate中的Criteria或QueryOver API生成此SQL或类似SQL
我尝试过各种方法,但我似乎无法将Waypoint连接到RouteWaypoint和RouteSalesMan。当我定义别名时,以及当我尝试将route.RouteId加入到它抱怨的任何内容时,NHibernate不会让我将字段关联多次。如果我没有指定字段,它会抱怨在航路点上找不到字段路由。结果表明,我的QueryOver/Criteria调用的结构没有问题。Fluent Nhibernate映射未正确生成的问题 复合ID创建为:
CompositeId().KeyProperty(x => x.SalesManId, "SalesManId")
... // Details elided;
References(x => x.SalesMan).Column("SalesManId);
而不是
CompositeId().KeyReference(x => x.SalesManId, "SalesManId")...
子查询是一种方法。检查或