首页 > 后端开发 > C++ > 在不使用DBSET的情况下,如何在实体框架核心中执行RAW SQL查询?

在不使用DBSET的情况下,如何在实体框架核心中执行RAW SQL查询?

Patricia Arquette
发布: 2025-01-27 01:06:10
原创
607 人浏览过

How Can I Execute Raw SQL Queries in Entity Framework Core Without Using DbSet?

无需DbSet在Entity Framework Core中执行原始SQL查询

在Entity Framework Core中,执行不依赖DbSet的原始SQL查询变得更具挑战性。传统的dbData.Database.SqlQuery<somemodel>方法已被移除,开发者需要寻找替代方法来使用SQL查询检索数据。

EF Core 8及更高版本

EF Core 8引入了SqlQuery方法,支持从原始SQL查询返回标量值和任意类型。此方法允许您直接执行SQL查询并将结果映射到所需的类型。

EF Core 3.0

对于EF Core 3.0,可以使用无键实体类型(以前称为查询类型)。这些类型不映射到特定的数据库表,允许任意数据检索。要定义无键实体类型,请在您的模型配置中使用[Keyless]数据注释或HasNoKey()方法。

EF Core 2.1

在EF Core 2.1 Release Candidate 1中,引入了查询类型。这些类型用作临时FromSql()查询的返回类型,映射到没有主键的数据库视图或表。在您的DbContext中定义一个DbQuery<t>属性来表示查询类型,然后使用FromSql方法执行查询。

示例:

<code>public DbQuery<somemodel> SomeModels { get; set; }

var result = context.SomeModels.FromSql("SQL_SCRIPT").ToList();</somemodel></code>
登录后复制

总结

这些方法提供了在Entity Framework Core中执行原始SQL查询的不同方法,而无需依赖DbSet。选择最适合您的特定需求和EF Core版本的方法。

以上是在不使用DBSET的情况下,如何在实体框架核心中执行RAW SQL查询?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板