![](/img/trans.png)
[英]How can I efficiently delete all records in a table using Entity Framework without using SQL?
[英]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指出了兩倍:
在數據庫中,假設已建立外鍵關系,請確保選中“在刪除 - >級聯”條件。 您可以在SQL Server Management Studio中更改此設置。
在您的EF實體模型中,您還應該在關系上指定此選項。 為此,只需選擇代表關系的實體之間的虛線。 在屬性中,您將看到“Cascading Delete”的相應選項 - 您應該為具有1而不是*的End選擇刪除。
級聯刪除概念模型(和db)的關系。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.