EF Core 3.0 Npgsql 是否有 Postgres 数组重叠 (&&) 运算符
Is there a Postgres array overlap (&&) operator for EF Core 3.0 Npgsql
给定一个 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)。
如果还需要其他算子没有翻译,请新开issue
给定一个 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)。
如果还需要其他算子没有翻译,请新开issue