我有一個用戶實體,其EntityBase作爲父類。 父類看起來是這樣的:代碼第一次自引用外鍵(多於一個)
public class EntityBase
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; }
public bool? IsPublic { get; set; }
public bool? IsActive { get; set; }
public DateTime CreatedAt { get; set; }
public DateTime? UpdatedAt { get; set; }
public DateTime? DeletedAt { get; set; }
public virtual User CreatedBy { get; set; }
public Guid? CreatedById { get; set; }
public virtual User UpdatedBy { get; set; }
public Guid? UpdatedById { get; set; }
public virtual User DeletedBy { get; set; }
public Guid? DeletedById { get; set; }
}
用戶等級:
public class User : EntityBase
{
public string Username { get; set; }
public string Email { get; set; }
public string Password { get; set; }
public string Token { get; set; }
public DateTime LastLogin { get; set; }
public DateTime LastAction { get; set; }
public bool IsLocked { get; set; }
public bool IsAdmin { get; set; }
public virtual ICollection<Cocktail> Cocktails { get; set; }
public virtual ICollection<Drink> DrinkVotes { get; set; }
public virtual ICollection<Cocktail> CocktailVotes { get; set; }
}
現在我與自我引用,因爲有一個循環依賴的問題,我怎麼能解決這個問題呢?
您可以將其保留在基類上,並且您必須手動配置它。想想用例:EntityA從Baseclass繼承而EntityB從EntityA繼承?基類中的Id將用於EntityA或EntityB。相信我很多其他使用案例會讓你頭痛,我建議你只是保持簡單並將其降低。 –
第二個使用案例想想如果你想創建一個一對一的關係你gona做什麼?你的ID必須是! DatabaseGeneratedOption.None !!!!所以你再次使用技巧來解決問題 –