簡體   English   中英

我應該如何使用 Fluent API 配置這些模型之間的關系?

[英]How should I configure relationships between these models with Fluent API?

我收到此錯誤“在表 'Tasks' 上引入 FOREIGN KEY 約束 'FK_Tasks_Projects_ProjectId' 可能會導致循環或多個級聯路徑”

項目 class 中的任務可以為空,用戶也可以沒有 TeamId。


public class Task {
    public int Id {get; set;}
    public int ProjectId {get; set;}
    public int PerformerId {get; set;}
    public User Performer {get; set;}
}

public class Project {
    public int Id {get; set;}
    public int AuthorId {get; set;}
    public int TeamId {get; set;}
    public List<Task> Tasks {get; set;}
    public User Author {get; set;}
    public Team Team {get; set;}
}

public class Team {
    public int Id {get; set;}
}

public class User {
    public int Id {get; set;}
    public int ?TeamId {get; set;}
}

這里有一個類似的帖子: Entity Framework Core: How to solve Introducing FOREIGN KEY constraint may cause cycles or multiple cascade paths

為了簡化這一點,我只需將用戶的 id 捕獲為項目和任務的 int (而不是用戶實體)。

public class Task {
    public int Id {get; set;}
    public int ProjectId {get; set;}
    public int PerformerId {get; set;}
}

public class Project {
    public int Id {get; set;}
    public int AuthorId {get; set;}
    public int TeamId {get; set;}
    public List<Task> Tasks {get; set;}
    public int Author {get; set;}
    public Team Team {get; set;}
}

public class Team {
    public int Id {get; set;}
}

public class User {
    public int Id {get; set;}
    public int ?TeamId {get; set;}
}

最終我會選擇一個稍微不同的結構,像這樣:

public class Task
{
    public int TaskID { get; set; }
    public int ProjectID { get; set; }
    public int PerformerID { get; set; }
}

public class Project
{
    public int ProjectID { get; set; }
    public int AuthorID { get; set; }
    public int TeamID { get; set; }
    public List<Task> Tasks { get; set; }
    public Team Team { get; set; }
}

public class Team
{
    public int TeamID { get; set; }
}

public class User
{
    public int UserID { get; set; }
    public List<Team> Teams { get; set; }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM