我是用LINQ TO SQL的  然后碰到这么一个问题,批量删除某一个表中的一些记录的时候,
如何验证其中的记录是否有被子表引用,验证的同时还要把被引用的记录返回提示
例如:
table1
name   id   type
chen   01   1
li     02   1
su     03   2table2
tab1_id   val
chen      1000table2是table1的子表  
现在我要批量删除table1中type=1的记录
而被table2引用的记录不要删除 同时要返回页面提示这条记录的name
如何去验证table1的记录在子表中是否存在引用。额~还有个小要求,能写成模板的最好

解决方案 »

  1.   

    如果不太理解问题  可以加我QQ314758590  验证时写上cnds
      

  2.   

    循环删除的时候,再查询下table2,给出提示就可以了using (var ctx = new XXXContext())
    {
       var t1 = ctx.Table1.Where(t => t.Type == 1);
       foreach(var t in t1)
       {
          var existsInT2 = ctx.Table2.FirstOrDefault(t2 => t2.Name == t.Name);
          if (existsInT2 != null)
             //  存在
          else
             //  不存在
       }}
      

  3.   

    写成模板有些复杂。相关表名和字段 都需从外部传入。函数可能是这样的IList<String> DeleteNoReference(IList<KeyValuePair<String,String>> info)KeyValuePair<String,String> => KeyValuePair<tableName,columnName>