【问题标题】:Determine if foreign key table has any links to primary key table with LINQ & DataTable使用 LINQ 和 DataTable 确定外键表是否有任何指向主键表的链接
【发布时间】:2011-05-04 01:24:30
【问题描述】:

我有 2 个数据表。

一个是大师,一个是细节

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

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

如果可能,我想使用 LINQ。

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

【问题讨论】:

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


    【解决方案1】:

    您不需要 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"])))
    

    【讨论】:

    • 是的,感谢您更新的答案,但是我刚刚查看,他们可以选择多个主记录,因此我需要根据所选的主记录检查是否有任何子行
    猜你喜欢
    • 1970-01-01
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多