领域查询在Xamarin的发布模式下不起作用

时间:2016-08-09 03:08:33

标签: xamarin realm

以下查询仅适用于调试模式:

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,我能够缓解这个问题。即使在两种构建模式下都禁用了链接选项,我仍然无法解释为什么它只在发布模式下发生。

1 个答案:

答案 0 :(得分:0)

我们很快就会推出一个新版本,它使用relinq来处理表达式解析,并且应该大大改善我们处理linq的方式,特别是对于这种表达式。

这将是0.77.2之后的下一个版本。

但是,您是第一个发现仅在发布模式下失败的内容,因此可能会发生更复杂的事情。

简单和复杂应用之间的链接设置有什么不同吗?也许链接器剥离会导致一些问题。