在EF Core中使用帶有ExecuteSqlCommand的DbParameter

entity-framework-core

不幸的是,似乎沒有任何ExecuteSqlCommand文檔,我只能找到FromSql的文檔。我能夠使用帶有命名參數的ExecuteSqlCommand成功調用存儲過程,該參數返回受影響的行。

但是,我正在嘗試將一個DbParameter的Direction屬性更改為ParameterDirection.Output。這似乎不起作用,我無論如何都找不到這種用法的例子。我看到的最接近的是EF Core GitHub repo中的問題#3115 ,但是沒有使用out參數。

當然我可以使用DbCommand來實現這一點,但是ExecuteSqlCommand只使用DbParameter作為命名參數而忽略方向?如果是這樣,那麼理想情況下應該在某處記錄 - 也許可以擴展Raw SQL Queries文章。

熱門答案

這是一個數據庫提供程序特定的問題,因為它不適用於MySQL,但適用於SQL Server。下面是演示後者使用的代碼:

var outParam = new SqlParameter("@ParamOut", DbType.Int32)
    { Direction = ParameterDirection.Output };

ctx.Database.ExecuteSqlCommand("EXEC dbo.MyTest @ParamOut OUTPUT", outParam);


Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow