Slick "for/yield"-query 无法通过负比较进行编译

Slick "for/yield"-query doesn't compile with negative comparison

我 运行 我的 slick-查询遇到了一个奇怪的问题:

如您所见,下面的函数正在编译,虽然它基本上是相同的查询,但有一个积极的比较(虽然我不知道它是否真的在做它应该做的事情)。当交换if条件的顺序时,它告诉我无法解决&&。我不知道是不是这样,但我猜第二个 table query object,在本例中 contents,似乎还没有完成。但是,这引出了为什么第二个 function/query 编译正确的问题。

你有答案吗?我在这里做错了什么吗?

提前致谢!

我想我已经解决了问题。

而不是:

if a.documentId === documentId && b.contentTypeId !== ContentType.PROCESS

我需要写:

if a.documentId === documentId && !(b.contentTypeId === ContentType.PROCESS)

仍然是一个我无法真正解释的奇怪行为,特别是因为在那些 if-statements

中通常允许像 !== 这样的负面比较

根据 slick docs

,您应该在查询中使用 =!= 表示不等式,使用 === 表示相等式