【发布时间】:2021-07-18 16:32:13
【问题描述】:
我有一个任务实体,每个任务都可以有前面和后面的任务,或者没有。所以我的任务应该和它本身有多对多的关系。而且我在这两个任务之间做了一个联结表TaskAssignment,但是在编译EF的时候报错:无法确定ICollection类型的navigation'AppTask.TaskAssignments'所代表的关系。我想我需要将 PrecedingTaskId 和 FollowTaskId 的外键显式声明为 AppTaskId,我尝试过但没有成功。请问我该如何解决?
public class AppTask
{
public int Id { get; set; }
public ICollection<TaskAssignment> TaskAssignments { get; set; }
}
public class TaskAssignment
{
public int PrecedingTaskId { get; set; }
public int FollowingTaskId { get; set; }
public AppTask PrecedingTask { get; set; }
public AppTask FollowingTask { get; set; }
}
【问题讨论】:
-
我认为你不需要前置和跟随;你可以从中推断出一个。即使您从多个并行任务开始,我也会选择具有前面任务的任务。如果您需要从一开始就启动多个,请为例如 5 个后续同时执行的任务创建一个虚拟非任务以供参考
标签: c# entity-framework