在 .NET Core 上使用 EntityFrameworkCore 和 SQLite 执行原始 SQL
Executing raw SQL using EntityFrameworkCore and SQLite on .NET Core
我正在制作一些安全插图,因此需要有目的地编写不安全的 SQL 查询。
我看的环境是.NET Core(不是全.NET),使用的驱动是EntityFrameworkCore,数据库类型是SQLite.
使用内置查找和查询功能的常规连接工作没有任何问题。但是,似乎没有允许我执行原始 SQL 语句的函数。
一些在线资源建议在数据库/上下文中使用 .FromSql()
和 .SqlQuery()
方法,但这些方法似乎都不存在于 .NET Core 驱动程序中。
有什么方法可以在此设置中执行原始 SQL 查询吗?
正如评论所指出的:
检查您的项目引用中是否有 Microsoft.EntityFrameworkCore.Relational
引用(如果您使用 sqllite,它应该在 Microsoft.EntityFrameworkCore.Sqlite
引用中)。
您可以使用 Nuget 包:
Microsoft.EntityFrameworkCore.Sqlite
和
db.Database.ExecuteSqlCommand("YOUR SQLITE SQL COMMAND");
其中 db 是从 DbContext
派生的 class 的一个实例
我正在制作一些安全插图,因此需要有目的地编写不安全的 SQL 查询。
我看的环境是.NET Core(不是全.NET),使用的驱动是EntityFrameworkCore,数据库类型是SQLite.
使用内置查找和查询功能的常规连接工作没有任何问题。但是,似乎没有允许我执行原始 SQL 语句的函数。
一些在线资源建议在数据库/上下文中使用 .FromSql()
和 .SqlQuery()
方法,但这些方法似乎都不存在于 .NET Core 驱动程序中。
有什么方法可以在此设置中执行原始 SQL 查询吗?
正如评论所指出的:
检查您的项目引用中是否有 Microsoft.EntityFrameworkCore.Relational
引用(如果您使用 sqllite,它应该在 Microsoft.EntityFrameworkCore.Sqlite
引用中)。
您可以使用 Nuget 包:
Microsoft.EntityFrameworkCore.Sqlite
和
db.Database.ExecuteSqlCommand("YOUR SQLITE SQL COMMAND");
其中 db 是从 DbContext
派生的 class 的一个实例