Subsonic OpenExpression/CloseExpression
-
20-09-2019 - |
Pregunta
¡Oigan todos! Estoy tratando de construir una consulta que sea algo como esto:
Donde columna = "valor" y columna2 = "valor" y (column3 = "valor" o columna4 = "valor")
Tengo este código:
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>();
El problema es que el subsonic está agregando el y después del paréntesis. ¿Cómo puedo negar eso?
Solución
Deberías poder hacer:
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>();
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow