>实体框架Core的演变改变了如何处理原始SQL查询,尤其是有关自定义数据类型的方法。 最近版本中不再可用dbData.Database.SqlQuery<somemodel>
方法。 本指南详细介绍了如何执行RAW SQL查询,以返回各种EF Core版本中的自定义类型。
SqlQuery
>利用无钥匙实体类型:
配置方法来实现的。>
使用>或[Keyless]
执行查询:.HasNoKey()
>
<code class="language-csharp">[Keyless] public class SomeModel { // Properties }</code>ef core 2.1(rc1)
FromSqlRaw
FromSql
>利用dbquery
<code class="language-csharp">var result = context.SomeModels.FromSqlRaw("SQL_SCRIPT").ToList(); var result = await context.SomeModels.FromSql("SQL_SCRIPT").ToListAsync();</code>在EF Core 2.1 rc1中,定义
>方法::
DbQuery<T>
DbContext
替代策略:FromSql
<code class="language-csharp">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();</code>ef core 2.0需要解决方法:
>自定义dtos:创建专用数据传输对象(DTO)来映射查询结果。 这需要数据的手动映射。
> sqlcommand:以上是如何在 Entity Framework Core 中使用自定义数据类型执行原始 SQL 查询?的详细内容。更多信息请关注PHP中文网其他相关文章!