2
在SQL我有一種內在的連接條件是這樣的:NHibernare JoinQueryOver條件
SELECT
UniqueID
FROM
Manuscripts M
inner join
Workflows W
on M.WorkflowID=W.WorkflowID
inner join
WorkflowSteps WS
on W.WorkflowID=WS.WorkflowID
and WS.WorkflowStepID = W.LastStepID
WHERE
M.IssueID = ?
and W.LastStepID is not null
and WS.ActualEnd is null
我翻譯查詢NHibernate的,到目前爲止,我無法定義的附加連接條件,我的查詢如下所示:
Workflows workflow = null;
WorkflowSteps workflowStep = null;
return session.QueryOver<Manuscripts>()
.Where(p => p.Issues == Issue)
.Inner.JoinQueryOver(p => p.Workflows,() => workflow)
.WhereNot(p => p.LastWorkflowStep == null)
.Inner.JoinQueryOver(p => p.WorkflowSteps,() => workflowStep)
.Where(() => workflowStep.DateActualEnd == null)
.Select(p => p.UniqueId)
.List<string>();
如何將附加條件添加到使用條件API的連接?
非常感謝, 佩德羅
恐怕不起作用。 (()=> workflowStep.DateActualEnd == null) 。(()=> workflowStep == workflow.LastWorkflowStep) 這也是我最初的方法,但沒有奏效。 – Pedro
@Pedro它爲什麼不起作用?它會拋出異常還是生成無效的SQL?請發佈更多信息。 – cremor
是的,它會在生成SQL之前引發未設置的對象引用異常。我認爲這與連接條件有關,不知何故nhibernate不能使用上面的查詢創建連接條件。 – Pedro