2009-11-13 36 views
1

嘿,所有!我試圖構造查詢是這樣的:SubSonic OpenExpression/CloseExpression

凡列=「價值」和列2 =「值」 AND(欄3 =「值」或column4 =「值」)

我有此代碼:

return new Select() 
       .From(LessonChallenge.Schema) 
       .Where(LessonChallenge.ChallengerStatusColumn).IsEqualTo("Finished") 
       .And(LessonChallenge.ChallengeeStatusColumn).IsEqualTo("Finished") 
       .OpenExpression() 
        .And(LessonChallenge.ChallengerAccountIDColumn).IsEqualTo(accountID) 
        .Or(LessonChallenge.ChallengeeAccountIDColumn).IsEqualTo(accountID) 
       .CloseExpression() 
       .OrderDesc("dateCompleted") 
       .Paged(1, numItems) 
       .ExecuteAsCollection<LessonChallengeCollection>(); 

問題在於SubSonic在括號後面添加了And。我怎麼能否定?

回答

4

你應該能夠做到:

return new Select() 
      .From(LessonChallenge.Schema) 
      .Where(LessonChallenge.ChallengerStatusColumn).IsEqualTo("Finished") 
      .And(LessonChallenge.ChallengeeStatusColumn).IsEqualTo("Finished") 
      .AndExpression(LessonChallenge.ChallengerAccountIDColumn).IsEqualTo(accountID) 
       .Or(LessonChallenge.ChallengeeAccountIDColumn).IsEqualTo(accountID) 
      .OrderDesc("dateCompleted") 
      .Paged(1, numItems) 
      .ExecuteAsCollection<LessonChallengeCollection>(); 
+0

謝謝!找出AndExpression存在! – StephenPAdams 2009-11-16 21:20:20