gpt4 book ai didi

c# - 选择 ID 在 int 数组中的实体 - WCF 数据服务,LINQ

转载 作者:太空狗 更新时间:2023-10-29 21:07:08 25 4
gpt4 key购买 nike

我想使用 LINQ 和数据服务返回一组实体,这些实体的 ID 包含在 ID 列表或数组中。我知道如何使用 LinqToEF 做到这一点,但我不知道如何使用数据服务或使用 OData 查询约定来解决这个问题。

我的想法是我会做这样的事情:

int[] intArray = {321456, 321355, 218994, 189232};
var query = (from data in context.Entity
where intArray.contains(data.ID)
select data);

有什么方法可以使用数据服务/OData 来完成吗?我知道我可能可以通过服务操作来破解它,但我不想那样做。

干杯。

最佳答案

目前 OData(底层协议(protocol))不支持 Contains 操作。所以这就是客户端库不翻译上述查询的原因。人们基本上使用两种方法来克服这个限制:1) 按照您的说明使用服务操作。2) 动态构造一个 where 子句,它使用简单的比较来比较数组中每个项目的值。因此,如果数组包含 1、2、3,则 where 将是 data.ID == 1 ||数据.ID == 2 ||数据.ID == 3#2 解决方案很好,因为它只是客户端更改。缺点是,它仅适用于小型阵列。如果数组包含太多项,表达式就会变得太长,从而导致各种麻烦。#1 解决方案没有大小问题,但您需要在服务器上提供操作。

关于c# - 选择 ID 在 int 数组中的实体 - WCF 数据服务,LINQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3521346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com