小编dae*_*osh的帖子

使用实体框架核心在 postgresql 中执行返回原语的存储函数

我有一个在 Postgresql 上运行的项目。我使用实体框架来执行将返回一些值(长)的存储过程。

 public override long GetHostSequenceNumber(byte hostId, byte srvId)
 {
    var hId = new Npgsql.NpgsqlParameter("@host_id", hostId);
    var sId = new Npgsql.NpgsqlParameter("@srv_id", srvId);
    var res = this.Database.SqlQuery<long>("select * from  dbo.bs_p_get_host_seqno( @host_id,@srv_id)", hId, sId).SingleOrDefault();
    return res;
  }
Run Code Online (Sandbox Code Playgroud)

简而言之,假设此过程在某些表中搜索某些特定值。

它工作得很好。但是现在我切换到 Core 2.0,我找不到做同样事情的方法。我读过一些文章,他们说要使用 FromSql,但我不能使用它,因为我没有要添加到 DbContext 的任何实体。我也尝试使用 ADO 并执行 SQL 命令,但我总是在结果中得到 -1。

public override long GetHostSequenceNumber(byte hostId, byte srvId)
    {
        var hId = new Npgsql.NpgsqlParameter("@host_id", hostId);
        var sId = new Npgsql.NpgsqlParameter("@srv_id", srvId);
        var res = this.Database.ExecuteSqlCommand("select * from  bs_p_get_host_seqno(@host_id,@srv_id)", hId,sId);
        return res;
    }
Run Code Online (Sandbox Code Playgroud)

但是 …

postgresql stored-procedures core npgsql .net-core

1
推荐指数
1
解决办法
5707
查看次数

标签 统计

.net-core ×1

core ×1

npgsql ×1

postgresql ×1

stored-procedures ×1