代码之家  ›  专栏  ›  技术社区  ›  Jon

确定外键表是否与具有Linq和DataTable的主键表有任何链接

  •  2
  • Jon  · 技术社区  · 15 年前

    我有两个数据表。

    一个是主人,另一个是细节。

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

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

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

    我开始查看dataTable.rows.cast()…

    1 回复  |  直到 15 年前
        1
  •  3
  •   SLaks    15 年前

    你不需要Linq。

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

    编辑 :应该使用数据关系。

    如果你真的不想,你可以查一下

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

    编辑 :要检查多个父级:

    var parentKeys = parentRows.Select(dr => dr["id"]).ToList();
    
    if (childTable.AsEnumerable().Any(dr => parentKeys.Contains(["ParentIdColumn"])))