【问题标题】:How to call system function with entity framework core for postgreSQL如何使用 postgreSQL 的实体框架核心调用系统函数
【发布时间】:2021-07-08 06:17:14
【问题描述】:

有一个返回 bool 结果的 postgreSQL 函数“pg_try_advisory_lock(key bigint)”。有什么解决方案如何执行此功能并通过 EF Core 获取结果?

【问题讨论】:

    标签: entity-framework-core npgsql


    【解决方案1】:

    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();
    

    【讨论】:

    • 是的,我也是这样做的。
    猜你喜欢
    • 2020-09-12
    • 2021-02-20
    • 2019-02-19
    • 2020-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多