首页 > 后端开发 > C++ > 如何在 Entity Framework Core 中使用自定义数据类型执行原始 SQL 查询?

如何在 Entity Framework Core 中使用自定义数据类型执行原始 SQL 查询?

Barbara Streisand
发布: 2025-01-27 01:16:09
原创
658 人浏览过

How to Execute Raw SQL Queries with Custom Data Types in Entity Framework Core?

>在实体框架核心中使用自定义数据类型执行原始SQL查询

>实体框架Core的演变改变了如何处理原始SQL查询,尤其是有关自定义数据类型的方法。 最近版本中不再可用dbData.Database.SqlQuery<somemodel>方法。 本指南详细介绍了如何执行RAW SQL查询,以返回各种EF Core版本中的自定义类型。

EF Core 8及以后 EF Core 8和随后的释放显着增强了

的方法,直接支持任意类型的返回。 这大大简化了过程。

EF Core 3.0及以后

SqlQuery>利用无钥匙实体类型:

>

>在EF Core 3.0及以后的RAW SQL查询中处理自定义数据类型的推荐方法是采用无钥匙实体类型。 这是使用

>属性或

配置方法来实现的。>

使用

>或[Keyless]执行查询:.HasNoKey()>

[Keyless]
public class SomeModel
{
    // Properties
}
登录后复制
ef core 2.1(rc1)

FromSqlRawFromSql>利用dbquery

var result = context.SomeModels.FromSqlRaw("SQL_SCRIPT").ToList();
var result = await context.SomeModels.FromSql("SQL_SCRIPT").ToListAsync();
登录后复制
在EF Core 2.1 rc1中,定义

内的a

属性,并使用

>方法:

> ef core 2.0

DbQuery<T> DbContext替代策略:FromSql

public DbSet<SomeModel> SomeModels { get; set; }

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<SomeModel>().HasNoKey();
}

// Execute query
var result = context.SomeModels.FromSql("SQL_SCRIPT").ToList();
登录后复制
ef core 2.0需要解决方法:

>自定义dtos:创建专用数据传输对象(DTO)来映射查询结果。 这需要数据的手动映射。

>

sqlcommand:直接使用
    。 这绕过EF Core的功能,降低了其优势。

以上是如何在 Entity Framework Core 中使用自定义数据类型执行原始 SQL 查询?的详细内容。更多信息请关注PHP中文网其他相关文章!

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