2017-04-04 320 views
1

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

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

當然我可以使用DbCommand來實現這一點,但是ExecuteSqlCommand只使用DbParameter作爲命名參數,並且方向被忽略?如果是這樣,那麼理想情況下這應該記錄在某處 - 原始SQL查詢文章可以擴展。

+0

AFAIK,只是設置方向出應該''.FromSql()'工作。您可能希望[提交新問題](https://github.com/aspnet/EntityFramework/issues/new)顯示您正在使用的代碼。 – bricelam

+0

有一個優秀的[連接器/ NET錯誤](https://bugs.mysql.com/bug.php?id=75267)阻止它爲MySQL工作。 –

回答

1

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

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

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