EF PostgreSQL array_append
EF PostgreeSQL array_append
我想将一个项目附加到类型为 int[] 的列中。
我看到带有 array_append 的 PostgreSQL 文档可以做到这一点。
但是我们如何使用 EF Core 做到这一点呢? (我使用 Npgsql.EntityFrameworkCore.PostgreSQL)
这目前不受支持(可以找到支持的数组翻译列表 here)。
与此同时,作为一种解决方法,您可以使用 raw SQL queries 直接在 SQL 中表达您的查询,并可能在此基础上编写其他 LINQ 运算符。
编辑:打开 https://github.com/npgsql/efcore.pg/issues/2026 进行跟踪,这应该适用于 6.0。
原始SQL查询:
var sql= $"UPDATE public.\"TableName\" SET \"ArrayColumnName\" = array_append(\"ArrayColumnName\", {value}) WHERE ... ;";//fill ... with your condition
var result =await _dbContext.Database.ExecuteSqlRawAsync(sql) ;//return int
我想将一个项目附加到类型为 int[] 的列中。 我看到带有 array_append 的 PostgreSQL 文档可以做到这一点。 但是我们如何使用 EF Core 做到这一点呢? (我使用 Npgsql.EntityFrameworkCore.PostgreSQL)
这目前不受支持(可以找到支持的数组翻译列表 here)。
与此同时,作为一种解决方法,您可以使用 raw SQL queries 直接在 SQL 中表达您的查询,并可能在此基础上编写其他 LINQ 运算符。
编辑:打开 https://github.com/npgsql/efcore.pg/issues/2026 进行跟踪,这应该适用于 6.0。
原始SQL查询:
var sql= $"UPDATE public.\"TableName\" SET \"ArrayColumnName\" = array_append(\"ArrayColumnName\", {value}) WHERE ... ;";//fill ... with your condition
var result =await _dbContext.Database.ExecuteSqlRawAsync(sql) ;//return int