Entity Framework Core 的 dbData.Database.SqlQuery<somemodel>
方法已被弃用,这在执行需要数据映射和排名的原始 SQL 查询时造成了困难。 虽然 dbData.Product.FromSql("SQL SCRIPT")
是一个选项,但它缺乏排名映射功能。
EF Core 版本和解决方案:
EF Core 8 及更高版本: SqlQuery
方法现在返回标量值并支持任意类型,使旧方法无效。
EF Core 3.0 及更高版本: 无键实体类型(以前称为查询类型)提供了解决方案。 使用 [Keyless]
注释您的类,并使用 FromSqlRaw
或 FromSql
执行查询并映射结果。
EF Core 2.1 及更高版本: 查询类型提供了一种可行的方法。 在 DbContext
中,定义 DbQuery<T>
属性(其中 T
表示 SQL 查询列值的类型)。 然后,像使用 FromSql
一样使用 DbSet<T>
方法。
以上是如何在不使用DBSET的情况下在实体框架核心中执行RAW SQL查询?的详细内容。更多信息请关注PHP中文网其他相关文章!