gpt4 book ai didi

C# Linq SQL 获取 ID 不在表中的结果

转载 作者:太空宇宙 更新时间:2023-11-03 20:47:51 26 4
gpt4 key购买 nike

我正在尝试编写一个脚本,定期从数据库中提取行并对它们进行处理。但是它拉取的行需要之前没有被拉取过。

为此,我使用一个单独的数据库来保存我之前提取的 ID。但我不知道我的解决方案是否会随着 ID 列表的增长而真正扩展?

using (FirstDatabase db = new FirstDatabase())
using (DatabaseWithIDs dbWithIDs = new DatabaseWithIDs())
{
List<ItemsToProcess> items = db.Items
.Where(x => x.IWantThis == true ) //conditions to get items from first database
.Where(x => !dbWithIDs.TableWithIDs.Select(y => y.Id).Contains(x.Id) )
.Select(x => new ItemsToProcess() {x.Id}) //etc.
}

这会随着 ID 列表的增长而扩展吗?

是否有更好的方法来做到这一点,还是我应该采用完全不同的方法?

最佳答案

Is there a better way to do this

是的,有;与其保存在其他地方拉取的 ID,不如考虑在原始表上添加一个额外的列来指示该行之前是否被拉取过。然后,您可以在该标志等于 0false 或表明该行之前未被拉出的任何值的地方构建查询;在每次查询之后,您应该检查查询是否返回了任何行;如果是这样,请使用您在最近发送的查询中使用的相同条件执行更新操作,以将标志更新为指示它之前已被拉取的值。

关于C# Linq SQL 获取 ID 不在表中的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58952815/

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