程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何使用 FromSqlRaw 在 Entity Framework Core 中返回 int 列表?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何使用 FromSqlRaw 在 Entity Framework Core 中返回 int 列表??

开发过程中遇到如何使用 FromSqlRaw 在 Entity Framework Core 中返回 int 列表?的问题如何解决?下面主要结合日常开发的经验,给出你关于如何使用 FromSqlRaw 在 Entity Framework Core 中返回 int 列表?的解决方法建议,希望对你解决如何使用 FromSqlRaw 在 Entity Framework Core 中返回 int 列表?有所启发或帮助;

我有这个 sql 查询,它在 Entity Framework 6 中使用原始 sql 并返回一个整数列表。

var sqlString = "SELECT disTinCT A.ListID FROM ABC A INNER JOIN ABCLists B ON B.ID = A.ListID"

var recordIDs = context.Database.sqlquery<int>(sqlString).ToList();

如何将上述内容转换为 Entity Framework Core 3?

我尝试使用 EF Core,但不确定在哪里定义它以作为列表 int 类型返回。以下是我所拥有的。

var recordIDs = _djContext.ABC.FromsqlRaw(sqlString).ToList();

注意:我不需要 liNQ 版本,只需要原始 sql。谢谢。

解决方法

在 EF 3.0 中,您需要声明一个专用类型,称为 Keyless entity type

[Keyless]
public class SomeType
{
    public int ids { get; set; }
}   

然后你像往常一样为它定义一个 DbSet

public DbSet<SomeType> SomeTypes { get; set; }

注意: [Keyless] 属性在 EFCore 5.0 中可用。对于 EF 3.0,您可以使用流畅的配置调用 .HasnoKey() 方法:

protected override void OnModelCreaTing(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<SomeType>().HasnoKey();
}

然后您可以执行以下操作:

var result = context.SomeTypes.FromSqlRaw(sqlString).ToList();
,

实际上,您只需使用 SELEct 来“投影”查询结果:

String sqlString = "select a.id FROM ABC A INNER JOIN ABCLists B ON B.Id = A.Id";
List<int> recordIds = _djContext.ABC.FromSqlRaw(sqlString).SELEct(abc => abc.Id).ToList();

大佬总结

以上是大佬教程为你收集整理的如何使用 FromSqlRaw 在 Entity Framework Core 中返回 int 列表?全部内容,希望文章能够帮你解决如何使用 FromSqlRaw 在 Entity Framework Core 中返回 int 列表?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。