說我有以下對象樹。我的對象樹是不是真的這個愚蠢的,但它確實有許多許多一對多的關係保持複雜對象樹中的對象同步
Account
- Users {UserId, Name, etc}
- UserPermissions {User object, Permission object}
- Permissions {PermissionId, Name, etc}
說,我想刪除一個用戶或從賬戶對象下一個權限對象。我希望在任何情況下,任何包含已刪除項目的UserPermission對象也將從UserPermission集合中刪除。
有沒有這樣做的優雅方式,而無需手動刪除UserPermission對象?我知道來自實體框架模型的對象做到這一點,但不知道如何實現相同的結果......我沒有使用EF,而是將對象結構保存到RavenDb。
每請求時,這裏是一個更全面的數據模型
public class Account
{
public List<User> Users {get;set;}
public List<UserGroup> UserGroups {get;set;}
public List<Alert> Alerts {get;set;}
public List<Resource> Resources {get;set;}
public List<AlertSubscription> AlertSubscriptions {get;set;}
}
public class UserGroup : IAlertSubscriber
{
public string Name {get;set;}
public List<User> Users {get;set;}
}
public class User : IAlertSubscriber
{
public string Name {get;set;}
}
public class AlertSubscription
{
public Alert Alert {get;set;}
public List<Resources> AlertPublishers {get;set;}
public List<IAlertSubscribers> AlertTargets {get;set;}
public int MinimumSeverity {get;set;}
}
所以,我很想能夠做的是,如果我刪除Account.Users收集用戶,也核彈它來自各種AlertTargets,UserGroups等。如果我從Account.UserGroups中刪除UserGroup,我想從AlertTargets中將其刪除,如果我從Account.Resources中刪除資源以從它中刪除AlertSubsciptions ...
只要還有另一個涉及用戶或權限的多對多關係,它會崩潰嗎? – Igorek
@Igorek很高興看到反映您真實問題的樣本 –
已更新的問題。感謝幫助! – Igorek