gpt4 book ai didi

c# - Linq 列表包含方法

转载 作者:行者123 更新时间:2023-11-30 20:49:48 25 4
gpt4 key购买 nike

我是 linq 的新手,我正在使用 linq 查询从表中检索数据。我的想法是列出与特定用户对应的所有现金保险箱,并将其显示在下拉列表中。

表结构如下图

Table 1
cashsafeid cashsafename
1 cashsafe1
2 cashsafe2
3 cashsafe3

Table 2
Id UserId Cashsafeid
1 100 1,2,3
2 101 1,3

我必须让特定用户的 cashsafename 说 100。我怎样才能实现它下面的代码是我试过但卡住了的代码

 List<Cashsafe> cashsafes=(from c in db.Table 1
where c.CashsafeId contains() )--Cannot go further

最佳答案

您以非常低效的方式存储用户的 Cachsafeid 列 - 它不允许为 LINQ 提供程序生成高效的 SQL。因此,以下解决方案性能不佳 - 如果您关心这一点 - 更改您的表结构。

var user = db.Table2.Single(u => u.UserId == 100);
var cachfeIds = user.Cashsafeid.Split(',').Select(int.Parse).ToArray();
var cachefes = db.Table1.Where(c => cachfeIds.Contains(c.Id)).ToList();

基本上您需要连接表,但外键是“虚拟的”——它只在您的脑海中。要检索外键值,我们必须拆分每个用户的 Cachsafeid 列的值以检索链接的缓存。然后才使用单独的请求检索缓存(我认为 LINQ 将从表中检索所有值并在 C# 代码中执行 Where 部分)。

关于c# - Linq 列表包含方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23108967/

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