我試圖通過引入第四個關係,如SQL ,但當我運行'更新數據庫'的錯誤發生:'FK ... dbo.ProjectUsersRoles用戶標識導致週期或多個級聯路徑'。 我已經嘗試過屬性和Fluent Api,但結果是一樣的 - 錯誤。也許有人有類似的錯誤或問題。這裏是代碼:實體框架代碼第一:多對多(> = 3)
public class Project
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public virtual ICollection<ProjectUserRole> UsersRoles { get; set; }
}
public class User
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public virtual ICollection<ProjectUserRole> RolesOnProject { get; set; }
}
public class Role
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public virtual ICollection<ProjectUserRole> UsersProjects { get; set; }
}
public class ProjectUserRole
{
[Key]
public int UserId { get; set; }
[Key]
public int ProjectId { get; set; }
[Key]
public int RoleId { get; set; }
public User User { get; set; }
public Project Project { get; set; }
public Role Role { get; set; }
}
非常感謝您的幫助!
如果您從'Project','Role'和'User'中取出對「ProjectUserRole」的引用,它會起作用嗎? –
是的,它的確如此。我知道這是因爲這些關係,但爲什麼? – Romko
我對EF不太熟悉。但是你確實有一個'A => B'和'B => A'循環參考問題(例如'ProjectUserRole'引用'User'和'User'引用'ProjectUserRole')。不知道在EF中如何實現這一切,但看起來它可能是一個問題。希望有人會給出一個更好的解釋,爲什麼這不起作用。 –