C# 我的数据模型不适合选择2列中的行

C# 我的数据模型不适合选择2列中的行,c#,postgresql,entity-framework,.net-core,C#,Postgresql,Entity Framework,.net Core,我对实体框架核心非常陌生,更确切地说是Npgsql.EFCore.postgresql5.0.0,我需要您的帮助 我想根据ID列表在表中选择一些数据,还想从表中的其他列中获取数据,这些列在这里以字节为单位描述几何体。换句话说,我的选择将返回2列。此外,响应必须保持ID列表的相同顺序 目前,我使用以下原始SQL: String rawRequest = "SELECT Ids, ST_AsBinary(geom_wkb) as geom_wkb" +

我对实体框架核心非常陌生,更确切地说是Npgsql.EFCore.postgresql5.0.0,我需要您的帮助

我想根据ID列表在表中选择一些数据,还想从表中的其他列中获取数据,这些列在这里以字节为单位描述几何体。换句话说,我的选择将返回2列。此外,响应必须保持ID列表的相同顺序

目前,我使用以下原始SQL:

String rawRequest = "SELECT Ids, ST_AsBinary(geom_wkb) as geom_wkb" +
                    "FROM {SCHEMA}.{Table}"  +
                    "JOIN UNNEST(ARRAY["+ {List_of_Ids_To_retrieve +"]::bigint[]) "+
                    "WITH ORDINALITY route(Ids, ordering) USING(Ids)";
最后我称之为

var response =  context.wkbObject
              .FromSqlRaw(rawRequest);
了解我的数据模型是:

[Table("one_table")]
public class wkbObject
{
    [Column("Ids")]
    [Key]
    public long[] Ids { get; set; }
    [Column ("geom_wkb ")]
    public byte[] geom_wkb { get; set; }
}
当我想在响应上做一个循环时

foreach (var wkb in response)
{
     /// Do stuff on the geom.. 
}
编译器似乎在子句“in”处关闭,数据模型似乎不适合。我得到了这个错误:

System.InvalidCastException:无法将数据库类型bigint强制转换为Int64[]

为什么?

我的问题是:


为什么不起作用:当我点击发送问题时,我知道转换错误在哪里。在我的数据模型中,我将long[]改为long,它就可以工作了

但我仍然需要你的帮助。使用Linq更好吗?如何以异步方式实现这一点?
var response=wait context.wkbObject.fromSqlRawRequest2;不起作用

这里有一个很好的理由使用原始SQL,对于async,它是wait context.wkbObject.fromSqlRawRequest2.ToListSyncy这是一个咨询服务,而不是免费的编码服务。一次一个问题。另外,在询问之前请阅读此内容