我有以下類和EF慣例創建的表 - 罰款 - 都很好。現在我想在ToDoList上配置級聯刪除(這樣,當我刪除一個ToDoList時,所有ToDoItems和UserToDoLists也會自動刪除)。我必須重新指定EF約定能夠檢測到以設置WillCascadeOnDelete的內容嗎?我如何在流利的API中指定這種關係?如何配置與EF Fluent API級聯刪除
public class ToDoList
{
public int Id { get; set; }
public string Description { get; set; }
public virtual ICollection<ToDoItem> ToDoItems { get; set; }
public virtual ICollection<UserToDoList> UserToDoLists { get; set; }
}
public class ApplicationUser : IdentityUser
{
public ApplicationUser()
: base()
{
}
public virtual ICollection<UserToDoList> UserToDoLists { get; set; }
}
// a todolist can have many users and a user can have many todolist
// junction table will have addition fields
public class UserToDoList
{
public string UserId { get; set; }
public virtual ApplicationUser User { get; set; }
public virtual int ToDoListId { get; set; }
public virtual ToDoList ToDoList { get; set; }
// additional fields
public bool IsOwner { get; set; }
public int Ordinal { get; set; }
public bool AllowEdit { get; set; }
}
public class UserToDoListConfig : EntityTypeConfiguration<UserToDoList>
{
public UserToDoListConfig()
{
HasKey(ut => new { ut.UserId, ut.ToDoListId });
}
}
public class ToDoListConfig : EntityTypeConfiguration<ToDoList>
{
public ToDoListConfig()
{
Property(t => t.Description).IsRequired().HasMaxLength(50);
HasMany(t =>t.UserToDoLists).??
}
}
[實體框架(EF)代碼第一個級聯刪除的一對零或一個關係]的可能的副本](http://stackoverflow.com/questions/17487577/entity-framework-ef-code-first -cascade-delete-for-one-to-zero-or-one-relations) – Kahbazi
級聯刪除應該是像你一樣的「一對多」關係的默認行爲。你檢查了生成的表/外鍵嗎? –
我是一個多對多的關係 – lee23