postgresql - EF Core 3.0 Npgsql 是否有 Postgres 数组重叠 (&&) 运算符
问题描述
给定一个DBSet<Tasks>
带有一列的tags text[]
。EF Core Npgsql 中是否有一种方法可以使用 Postgres 重叠 (&&) 运算符查询与提供的标签列表相同的标签,例如
select * from tasks where tag && '{bug, feature}'
我找不到与此相关的任何内容,并且我想避免客户端评估。我想做类似的事情
var tags = new List<string> { "bug", "feature" };
var foo = _db.Tasks.Where(x => x.Tags && tags); // obviously this doesn't work
我也尝试了 linq contains 方法
var foo = _db.Tasks.Where(x => x.Tags.Any(x => tags.Contains(x)));
但收到无法翻译 linq 表达式的异常。
解决方案
3.1 版添加了对数组重叠 (&&) 和包含 (@>) 的支持,应该很快就会发布(参见https://github.com/npgsql/efcore.pg/issues/1135)。
如果需要任何其他运算符但未翻译,请打开一个新问题。
推荐阅读
- ios - Spotify iOS 中的新 iOS SDK(SPTRemoteApp 和 SPTSessionManger)
- sql - 如何选择前三个订单与特定值匹配的客户?
- r - 具有两个值作为点和平均值具有其他形状的图形
- sql-server - 在 SQL Server 2017 Express 版本上恢复超过 3 GB 的 bak 文件出现错误
- c# - 无法将 json 反序列化为字典
> - c# - Asp.Core 中的 WebApi 1.0 动作重载
- php - Google 事件 API 返回 401 错误未授权客户端
- javascript - 达到限制时如何禁用未选中的复选框
- node.js - nodejs 客户端无法注册到基于 nodejs 护照的身份验证服务
- python - python:采用类参数的优雅方式?