簡體   English   中英

實體框架-級聯刪除

[英]Entity Framework - Cascade deleting

假設我有2節課:

public class Photo 
{
     public int Id {get;set;}
     public string Name {get;set;}
     public int AlbumId {get;set;

     publiv virtual Album Album {get;set;}
}

public class Album
{
     public int Id {get;set;}
     public decimal Price {get;set;}

     public ICollection<Photo> Photos {get;set;}
}

現在,我想刪除所有帶有價格的專輯,例如2。我已經嘗試過:

Context.RemoveRange(Context.Albums.Where(x = > x.Price == 2))

很好,但是在刪除相冊之前,我需要刪除每張帶有要刪除的AlbumId的照片。

在上下文中使用Fluent API進行級聯刪除

modelBuilder.Entity<Photo>()
                        .HasRequired(c => c.Album)
                        .WithMany(a => a.Photoes)
                        .WillCascadeOnDelete(true);

EF不會級聯刪除自身。 它依賴於正確的數據庫定義,然后假定數據庫將執行級聯刪除(如果指定)。 有關更多信息,請參見本文 正如其他用戶指出的那樣,您將不得不使用Fluent,EF並不會自己這樣做。

暫無
暫無

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

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