怎么根据一个表中的ID 查询另一个表的ID并将其删除 ?

新手上路,请多包涵

用EF 数据模型
2个表一个A,另一个B。我想根据A.id 查询到B.user_id对应的 B.system_user_role_id 并删除该条数据。

目前我只删除了A里的某个id 的数据。

private EF.c db = new c();

// GET: administration/Delete/5
        public ActionResult Delete(int id)
        {
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            A a = db.A.Find(id);
            
            if (a == null)
            {
                return HttpNotFound();
            }
            db.A.Remove(a);
         
             db.SaveChanges();

            return RedirectToAction("user");
        }
阅读 9.1k
2 个回答
--以下为sql server语句方法
--输入A表Id、查询出对应B表数据
SELECT [Table_B].user_id,[Table_B].system_user_role_id 

FROM [Table_B] LEFT JOIN [Table_A] ON [Table_A].id=[Table_B].user_id 

WHERE [Table_A].id=XXX  --输入A表Id

--删除符合条件数据
DELETE FROM [Table_B] WHERE user_id IN 
            (
               SELECT [Table_B].user_id FROM [Table_B] 
          
               LEFT JOIN [Table_A] ON [Table_A].id=[Table_B].user_id 
 
               WHERE [Table_A].id=XXX  --输入A表Id
             )



如果你两个实体在代码中有关联关系,默认情况下EF是级联删除的。
如果不是,那么你必须根据相关条件查找到要删除的B然后手动删除。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进