c# - 使用 LINQ to DataTable 确定外键表是否与主键表有任何链接

标签 c# linq .net-3.5 c#-3.0 datatable

我有 2 个数据表。

一是主,二是细节

当有人要删除主记录时,我如何检查我的详细数据表中是否没有与主表 ID 相关的行。

更新:用户可以一次选择多个主记录

如果可能的话,我想使用 LINQ。

我开始查看DataTable.Rows.Cast()......

最佳答案

您不需要为此使用 LINQ。

相反,您可以检查masterRow.GetChildRows("RelationName").Length

编辑:您应该使用 DataRelation。

如果实在不想,可以查看

childTable.AsEnumerable().Any(dr => dr["ParentIdColumn"] == someValue)

编辑:检查多个父项:

var parentKeys = parentRows.Select(dr => dr["id"]).ToList();

if (childTable.AsEnumerable().Any(dr => parentKeys.Contains(["ParentIdColumn"])))

关于c# - 使用 LINQ to DataTable 确定外键表是否与主键表有任何链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4079973/

相关文章:

c# - 如何使用 LINQ 将泛型序列转换为三角形?

c# - LINQ 时间戳 - 自动更新时间戳列?

c# - 如何在 A 列或 B 列上加入 Linq 查询

c# - 为什么 LINQ 无法将 DataRows 添加到 DataTable?

c# - 在Media Foundation Sink Writer上添加声音和输入声音

c# - 并行嵌套操作返回奇怪的结果

c# - ActiveDirectory 目录搜索器 : Check if user is member of a group

c# - 重定向 Trace.axd 输出

c# - 当工作线程正在工作时,什么代码可以更好地延迟主线程

.net-3.5 - 如何生成自定义 SID?