鍍金池/ 問(wèn)答/C#  數(shù)據(jù)庫(kù)/ 怎么根據(jù)一個(gè)表中的ID 查詢(xún)另一個(gè)表的ID并將其刪除 ?

怎么根據(jù)一個(gè)表中的ID 查詢(xún)另一個(gè)表的ID并將其刪除 ?

用EF 數(shù)據(jù)模型
2個(gè)表一個(gè)A,另一個(gè)B。我想根據(jù)A.id 查詢(xún)到B.user_id對(duì)應(yīng)的 B.system_user_role_id 并刪除該條數(shù)據(jù)。

目前我只刪除了A里的某個(gè)id 的數(shù)據(jù)。

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");
        }
回答
編輯回答
魚(yú)梓

如果你兩個(gè)實(shí)體在代碼中有關(guān)聯(lián)關(guān)系,默認(rèn)情況下EF是級(jí)聯(lián)刪除的。
如果不是,那么你必須根據(jù)相關(guān)條件查找到要?jiǎng)h除的B然后手動(dòng)刪除。

2017年8月31日 01:09
編輯回答
陌南塵
--以下為sql server語(yǔ)句方法
--輸入A表Id、查詢(xún)出對(duì)應(yīng)B表數(shù)據(jù)
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

--刪除符合條件數(shù)據(jù)
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
             )



2017年4月18日 06:20