1
我有一個實體像下面,實體框架級聯中的一個零或一對一的關係
class User
{
public int Id {get;set;}
public string Name {get;set;}
public int? UserSecurityId {get;set;}
public virtual UserSecurity UserSecurity {get;set;}
}
class UserSecurity
{
public int Id {get;set;}
public int? AdminRoleId{get;set;}
public virtual Admin AdminRole {get;set;}
public int? ApproverRoleId {get;set;}
public virtual TaskApprover ApproverRole {get;set;}
}
class Admin
{
public int Id {get;set;}
public string Name {get;set;}
}
class TaskApprover
{
public int Id {get;set;}
public string Name {get;set;}
}
我使用使用實體框架6.1.3 我需要刪除UserSecurity記錄,當我刪除用戶的用戶表。
gooling之後,我發現了一些這樣的事,
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//// Cascade delete, The foreign key table records will be removed when its parent deleted.
modelBuilder.Entity<EPDUser>().HasOptional(x => x.UserSecurity).WithOptionalDependent().WillCascadeOnDelete(true);
modelBuilder.Entity<EPDUserSecurity>().HasOptional(x => x.AdminRole).WithOptionalDependent().WillCascadeOnDelete(true);
modelBuilder.Entity<EPDUserSecurity>().HasOptional(x => x.ApproverRole).WithOptionalDependent().WillCascadeOnDelete(true);
base.OnModelCreating(modelBuilder);
}
而且我的倉庫代碼刪除用戶低於,
protected override void OnDelete(int id)
{
var user = EntitySet.Include(x=>x.UserSecurity).FirstOrDefault(x => x.ID == id);
EntitySet.Remove(user);
DbContext.Entry(user).State = EntityState.Deleted;
}
保存更改後,用戶記錄只得到刪除不是用戶安全記錄。
Kinldy在刪除用戶時幫我刪除UserSecurity記錄。 在前提前感謝
嗨阿薩德,你是禮儀。當我提到上述行時,已經創建了一個名爲「EPDUser_ID」的新列,並在此處更新了相應的用戶標識。當我刪除用戶時,它也會刪除用戶安全表。 感謝您的回覆。 – Karthikeyan