簡體   English   中英

如何刪除與“用戶”關聯的所有記錄?

[英]How can I delete all records associated with a “User”?

我正在使用Entity Framework以及默認的ASP.NET Membership服務。 我還有一個第三個表格,用於“個人資料信息”。 我以為EF會在內部處理所有內容,但事實並非如此。 當我嘗試通過轉到http://localhost:19506/User/Delete/SomeGUIDhere這樣的URL來刪除用戶時,我得到一些與存在外鍵約束這一事實有關的令人討厭的錯誤。

如何管理這些類型的依賴項? 不得不追蹤它所有類型的失敗EF的目的,所以我猜我錯過了一些小的東西。

編輯包含我正在使用的一些代碼。 我仍然想知道是否有比下面更好的方法。 看起來它會很快失控,很多外鍵依賴依賴。

public void DeleteUser(User u)
{
    db.Profiles.DeleteObject(u.Profile);
    db.aspnet_Membership.DeleteObject(u.aspnet_Membership);
    db.Users.DeleteObject(u);
    db.SaveChanges();
}

如何管理這些類型的依賴項? 不得不追蹤它所有類型的失敗EF的目的,所以我猜我錯過了一些小的東西。

不幸的是,這仍然是一個手動過程,並且@Danny Varod指出了兩倍:

  1. 在數據庫中,假設已建立外鍵關系,請確保選中“在刪除 - >級聯”條件。 您可以在SQL Server Management Studio中更改此設置。

  2. 在您的EF實體模型中,您還應該在關系上指定此選項。 為此,只需選擇代表關系的實體之間的虛線。 在屬性中,您將看到“Cascading Delete”的相應選項 - 您應該為具有1而不是*的End選擇刪除。

在此輸入圖像描述

級聯刪除概念模型(和db)的關系。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM