流畅的NHibernate复合连接

时间:2013-06-07 14:56:03

标签: c# nhibernate fluent-nhibernate

我正在使用Fluent NHibernate(v3),但我正在努力映射连接以实现现有SQL查询的结果。我们有两个表,其中一个表包含决定用户可以看到的数据的规则,我们加入了这些表。

规则通过允许指定DayRules表中的一个或多个列来工作。例如。如果BusinessId为1但行中的所有其他列都为NULL,那么您将只能看到该BusinessId的天数。但是,如果BusinessId = 1且ClientId = 2,那么您只能看到属于该BusinessId和ClientId的日期。我希望我可以通过映射实现这一点而不是移动到视图。任何帮助将不胜感激。

SELECT * FROM
FROM AllDays ad
INNER JOIN dbo.DayRules rules
ON rules.UserId = 1 -- Parameter
AND rules.ClientId = 2 -- Parameter
AND ad.ClientId = CASE WHEN rules.ClientId IS NULL THEN ad.ClientId ELSE rules.ClientId END
AND ad.ClientLocationId = CASE WHEN rules.ClientLocationId IS NULL THEN ad.ClientLocationId ELSE rules.ClientLocationId END
AND ad.BusinessId = CASE WHEN rules.BusinessId IS NULL THEN ad.BusinessId ELSE rules.BusinessId END
AND ad.AreaId = CASE WHEN rules.AreaId IS NULL THEN ad.AreaId ELSE rules.AreaId END
AND ad.DivisionId = CASE WHEN rules.DivisionId IS NULL THEN ad.DivisionId ELSE rules.DivisionId END
AND rules.Active = 1

0 个答案:

没有答案