C# 我的数据模型不适合选择2列中的行
我对实体框架核心非常陌生,更确切地说是Npgsql.EFCore.postgresql5.0.0,我需要您的帮助 我想根据ID列表在表中选择一些数据,还想从表中的其他列中获取数据,这些列在这里以字节为单位描述几何体。换句话说,我的选择将返回2列。此外,响应必须保持ID列表的相同顺序 目前,我使用以下原始SQL: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" +
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这是一个咨询服务,而不是免费的编码服务。一次一个问题。另外,在询问之前请阅读此内容