【发布时间】:2021-07-08 06:17:14
【问题描述】:
有一个返回 bool 结果的 postgreSQL 函数“pg_try_advisory_lock(key bigint)”。有什么解决方案如何执行此功能并通过 EF Core 获取结果?
【问题讨论】:
标签: entity-framework-core npgsql
有一个返回 bool 结果的 postgreSQL 函数“pg_try_advisory_lock(key bigint)”。有什么解决方案如何执行此功能并通过 EF Core 获取结果?
【问题讨论】:
标签: entity-framework-core npgsql
EF Core 目前不支持运行返回原始(非实体)类型的查询,#11624 跟踪。
但是,下拉到 ADO.NET 并执行您的函数非常容易:
await ctx.Database.OpenConnectionAsync();
using var conn = ctx.Database.GetDbConnection();
var cmd = conn.CreateCommand();
cmd.CommandText = "SELECT pg_try_advisory_lock(8)";
var result = (bool)await cmd.ExecuteScalarAsync();
await ctx.Database.CloseConnectionAsync();
【讨论】: