C# 如何使用NHibernate左键连接两个不同的表
我有三张桌子(表A、B和C)。 我想做以下工作: 左连接A和B,左连接A和C 现在我已经使用CreateCriteria,使用jointype进行连接,这在一定程度上是有效的,但它会引发查询异常。这似乎是因为它似乎试图把B和C左连接,而不是A和C 代码:C# 如何使用NHibernate左键连接两个不同的表,c#,nhibernate,fluent-nhibernate,C#,Nhibernate,Fluent Nhibernate,我有三张桌子(表A、B和C)。 我想做以下工作: 左连接A和B,左连接A和C 现在我已经使用CreateCriteria,使用jointype进行连接,这在一定程度上是有效的,但它会引发查询异常。这似乎是因为它似乎试图把B和C左连接,而不是A和C 代码: Currency=session.CreateCriteria(货币类型),“表A”) .CreateCriteria(“FXRates”、“表B”, JoinType.LeftOuterJoin, 表达式.Eq(“fxrate.RateDat
Currency=session.CreateCriteria(货币类型),“表A”)
.CreateCriteria(“FXRates”、“表B”,
JoinType.LeftOuterJoin,
表达式.Eq(“fxrate.RateDate”,date))
.CreateCriteria(“基金会”、“表C”,
JoinType.LeftOuterJoin,
表达式.Eq(“fundingrate.RateDate”,日期))
.Add(Restrictions.IsNotNull(“currency.code”))
.List();
如果我遗漏了任何内容或没有提供足够的详细信息,请提前向我道歉。如果您需要更多信息,请告诉我。您可以使用NHibernate“QueryOver”来完成:
session.QueryOver<Item_A>()
.Left.JoinQueryOver(item_A => item_A.Item_B)
.Left.JoinQueryOver(item_A => item_A.Item_C)
.TransformUsing(Transformers.DistinctRootEntity)
.List();
session.QueryOver()
.Left.JoinQueryOver(项目A=>项目A.项目B)
.Left.JoinQueryOver(项目A=>项目A.项目C)
.变压器使用(变压器.距离)
.List();
您可以使用NHibernate“QueryOver”来执行此操作:
session.QueryOver<Item_A>()
.Left.JoinQueryOver(item_A => item_A.Item_B)
.Left.JoinQueryOver(item_A => item_A.Item_C)
.TransformUsing(Transformers.DistinctRootEntity)
.List();
session.QueryOver()
.Left.JoinQueryOver(项目A=>项目A.项目B)
.Left.JoinQueryOver(项目A=>项目A.项目C)
.变压器使用(变压器.距离)
.List();
谢谢安东,我会看一看,然后给你回复。谢谢安东,我会看一看,然后给你回复。