我正在进行一些安全演示,因此需要有意编写不安全的SQL查询。
我关注的环境是.NET Core(不是完整的.NET),所使用的驱动程序是EntityFrameworkCore,数据库类型是SQLite。
使用内置的查找和查询函数的常规连接没有任何问题。但似乎没有函数允许我执行原始SQL语句。
几个在线资源推荐在数据库/上下文中使用.FromSql()
和.SqlQuery()
方法,但这两种方法都不存在于.NET Core驱动程序中。
在这种情况下,有没有办法执行原始的SQL查询?
我正在进行一些安全演示,因此需要有意编写不安全的SQL查询。
我关注的环境是.NET Core(不是完整的.NET),所使用的驱动程序是EntityFrameworkCore,数据库类型是SQLite。
使用内置的查找和查询函数的常规连接没有任何问题。但似乎没有函数允许我执行原始SQL语句。
几个在线资源推荐在数据库/上下文中使用.FromSql()
和.SqlQuery()
方法,但这两种方法都不存在于.NET Core驱动程序中。
在这种情况下,有没有办法执行原始的SQL查询?
正如评论中指出的:
检查您的项目引用中是否有 Microsoft.EntityFrameworkCore.Relational
(如果使用 sqllite,则应在 Microsoft.EntityFrameworkCore.Sqlite
引用中)。
Microsoft.EntityFrameworkCore.Relational
的 Microsoft.EntityFrameworkCore.Sqlite
6.0.2,但是仍然没有成功。没有任何原始查询的方法存在,您有什么想法吗? - Master DJonMicrosoft.EntityFrameworkCore.Sqlite
和
db.Database.ExecuteSqlCommand("YOUR SQLITE SQL COMMAND");
其中db是从DbContext派生的类的实例
FromSql
扩展方法在Microsoft.EntityFrameworkCore.Relational
程序集中,而Microsoft.EntityFrameworkCore.Sqlite
依赖于它。因此,如果您安装 sqlite 包,就可以使用FromSql
扩展方法。我已经测试过了,没有问题。请查看引用选项卡,并检查是否有Microsoft.EntityFrameworkCore.Sqlite
引用。 - adem caglin