oracle 如何在.NET Core中使用NHibernate执行存储过程?

waxmsbnn  于 2023-11-17  发布在  Oracle
关注(0)|答案(1)|浏览(129)

我使用的是Oracle数据库,它有一个存储过程,可以修改客户端的值,但不返回任何内容。
我尝试在控制器中以HTTP POST方法调用它,就像这样。

[HttpPost("louerFilm")]
[Authorize]
public IActionResult LouerFilm(LocationRequest locationRequest)
{
    var session = _nHibernateHelper.OpenSession();

    try
    {
        var result = session.CreateSQLQuery("exec pLouerCopieFilm :p1, :p2")
            .SetParameter("p1", locationRequest.IdClient)
            .SetParameter("p2", locationRequest.IdFilm)
            .ExecuteUpdate();

        return StatusCode(200);
    }
    catch (Exception e)
    {
        Console.WriteLine(e);
        return StatusCode(471);
    }
}

字符串
这段代码不起作用。是我使用了错误的语法,还是我使用存储过程的方式有问题?
我已经在我的数据库中直接测试了这个过程,比如EXEC pLoeurFilm(123, 456),它工作正常。

xtfmy6hx

xtfmy6hx1#

能够通过使用以下语法更正它:

var query = Session.CreateSQLQuery("call pLouerFilm(:p1, :p2)")
    .SetParameter("p1", 123);
    .SetParameter("p2", 456);
    .ExecuteUpdate();

字符串

相关问题