我想無法在實體框架
SELECT object_id
FROM sys.tables
WHERE sys.tables.name = 'Projects'
爲
int n = context.Database.SqlQuery<int>(
"SELECT object_id from sys.tables where sys.tables.name = 'Projects'")
.FirstOrDefault();
我得到n個一如既往0
如果我使用SqlConnection
和查詢執行以下查詢閱讀系統視圖它使用了一個SqlCommand
我得到了正確的結果。那麼爲什麼DbContext.Database.Connection
不讓我執行普通的SQL查詢?
爲簡單起見,我已經刪除了SqlParameter
,所以我意識到此代碼不是SQL注入安全的。
我認爲你的表名不存在。如果我運行查詢(將名稱更改爲有效的名稱後),它可以正常工作 –