以下查询仅适用于调试模式:
private IQueryable<UserState> UsersOfEmail(string email)
{
return this.realm.All<UserState>()
.Where(u => u.EmailAddress == email);
}
在发布模式下,我收到错误:
二元运算符'Equal'的rhs应该是常量或闭包变量表达式
我找到了workaround的错误,但似乎并不适用于此。
当我检查项目的启用调试选项(在这种情况下为iOS)时,它工作正常,这就是它首先只在调试模式下工作的原因。
关于错误和调试选项之间关系的任何线索?
更新
经过进一步调查后,我发现此问题与Realm 无关。
我误用了Prism的事件pub-sub功能(MVVM框架等),并且多次订阅了一个页面的视图模型中的事件,该页面可以导航到和来自在每次互动中取消订阅。
我认为这是一个Realm问题,因为我在开始模式下一开始并没有意识到email
参数是null
。
通过正确使用pub-sub,我能够缓解这个问题。即使在两种构建模式下都禁用了链接选项,我仍然无法解释为什么它只在发布模式下发生。
答案 0 :(得分:0)
我们很快就会推出一个新版本,它使用relinq来处理表达式解析,并且应该大大改善我们处理linq的方式,特别是对于这种表达式。
这将是0.77.2之后的下一个版本。
但是,您是第一个发现仅在发布模式下失败的内容,因此可能会发生更复杂的事情。
简单和复杂应用之间的链接设置有什么不同吗?也许链接器剥离会导致一些问题。