- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个简单的 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]]' on index .....
这显然是错误的。
如果我返回 List 而不是 IQueriable - 它工作正常,因此管道中稍后的某些内容会更改查询。有谁对如何实现这项工作有任何见解吗?
最佳答案
首先将值复制到局部变量时应该可以工作:
var userName = this.User.Identity.Name;
return session.Query<Message>()
.Where(x => x.TargetUserId == userName ||
x.SourceUserId == userName);
这是因为在执行查询时,Raven 客户端查询转换器无法解析谓词中表达的对象。通过将它们复制到局部变量中,您可以将常量值传递到表达式中。
我相信这与关闭有关。也许对表达式树有更直接了解的人可以在评论中更好地解释。
关于ravendb - WebAPI 和 OData - 返回带前提条件的 Queryable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15259466/
重现问题的代码 我遇到了一个 IQueryable.Where 的情况电话返回 IQueryable其中 TOther != TSource .我整理了一些示例代码来重现它: using System
例如,我有一个 Product 实体、一个 ProductViewModel 和一个 Label 实体。我的两个产品属性对应于标签代码而不是实际值。例如,产品的名称是“code1234”,它对应于具有
我正在使用 Diesel crate执行一些数据库工作。在某些表中,应将表的两列一起视为一个键。 这种模式在数据库中的许多地方都重复出现,因此最好避免使用大量重复的复制粘贴代码来处理这种情况。但是,我
我正在使用 EF6 为应用程序实现搜索/筛选器 UI 的后端。我有代码构建一个与 Queryable.Where 一起使用的表达式,对于给定的 DbSet,DbSet 的类型在运行时确定(DBCo
我有一个数据库查询: var configs = dbData.Configs.Where(e => headers.Contains(e.headerId) && e.flag == "true")
如何声明这样的变量? var rData = from nc in ctx.NEWSLETTER_CLIENTS join ni
1.在数据库中以json字符串格式保存,如:[{"name":"张三","time":"8.592","ar
重要 问题不是“Queryable.OfType 有什么作用,而是“我在那里看到的代码是如何实现的?” 反射(reflection) Queryable.OfType,我看到(经过一些清理):
你怎么了黑帮? 我有以下代码似乎总是返回 null。 public static T GetNext(this IQueryable list, T current) {
我有以下代码 var results = repository.GetItemsAsQuery().Where( user =>
我正在编写一个转换 IQueryable 查询的访问者。它使用带有种子 null 的 Aggregate 方法,然后使用一些 func 对其进行转换。我的问题是这个 null 是 decimal? 类
我有这个存储库方法: public IQueryable GetAll() { using (var context = new DatabaseContext()) {
我不太了解界面,所以我想我会以一种有助于我更好地理解它的方式来表述这个问题。 我正在学习如何制作 IQueryable 的教程。为什么我不能只做一个 Queryable? 最佳答案 Queryable
我对 Linq 有点陌生,希望有人能帮助我解决我目前正在苦苦挣扎的事情。 我目前有 2 个列表 public IQueryable Roles { get { var role
我有一个 ASP.NET 站点,它已经完美运行了很长时间,最近没有任何变化。从一个小时到下一个小时,我开始在我执行 LINQ 查询的一行中收到 IndexOutOfRangeException: va
我想知道如何在列表中存储 orderby 表达式。这就是我想写的: List>> list = new List>>() { p => p.Name, p => p.Id }; 然后: var
我正在构建一个基于 LINQ 的查询生成器。 其中一项功能是能够将任意服务器端投影指定为查询定义的一部分。例如: class CustomerSearch : SearchDefinition {
我正在尝试在我的 API 中实现 Guardian 并通过它执行登录以获取 JWT。我正在看的教程是here .问题是使用类似于他们在示例中使用的用户模型来实现登录。模型代码如下所示: defmodu
我有一个简单的 GET 方法,它返回 IQueryable,并且对查询有一些先决条件: [Queryable(HandleNullPropagation = HandleNullPropagation
我有一个简单的 WebApi 方法,就像这样用 OData 可查询属性装饰。 [Queryable] public virtual IQueryable Get() {
我是一名优秀的程序员,十分优秀!