我有一个简单的 GET 方法,它返回 IQueryable,并且对查询有一些先决条件:
[Queryable(HandleNullPropagation = HandleNullPropagationOption.False)]
public IQueryable<Message> Get()
{
using (var session = RavenStore.GetSession())
{
var messages = session.Query<Message>().Where(x => x.TargetUserId == this.User.Identity.Name || x.SourceUserId == this.User.Identity.Name);
return messages;
}
}
这是 RavenDB,顺便说一句。我遇到的问题是,在执行时,用户 ID 被替换为“[EMPTY_STRING]”,所以它运行的实际查询是这样的:
'TargetUserId:[[EMPTY_STRING]] OR SourceUserId:[[EMPTY_STRING]]' 在索引.....
这显然是错误的。
如果我返回 List 而不是 IQueriable - 它工作正常,因此管道中的某些内容会更改查询。有没有人对如何使这项工作有任何见解?