我想无法在实体框架
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注入安全的。
我认为你的表名不存在。如果我运行查询(将名称更改为有效的名称后),它可以正常工作 –