我的模型看起来像这样:
public class WorkflowDefinition
{
public List<WorkflowStepRelationship> Relationships { get; private set; }
public string Name { get; private set; }
public WorkflowStepDefinition StartingStepDefinition { get; private set; }
public Guid Id { get; private set; }
}
public class WorkflowStepRelationship
{
public WorkflowStepDefinition InitialStep { get; private set; }
public List<WorkflowStepDefinition> NextSteps { get; private set; }
public Guid Id { get; private set; }
}
public class WorkflowStepDefinition
{
public string Name { get; private set; }
public Guid Id { get; private set; }
}
这个想法是工作流由一个起始步骤和一组关系组成,这些关系允许您从该起始步骤导航到下一个可用步骤的集合。因此,根据定义,StartingStepDefinition
中的WorkflowDefinition
也将是InitialStep
中Relationships
之一的WorkflowDefinition
。
我首先使用代码生成数据库。
问题是,当我尝试保存具有此设置的WorkflowDefinition
时,我收到一条错误消息,指出它无法在WorkflowStepDefinitions
表中插入重复的行,而且似乎在尝试保存关联的StartingStepDefinition
WorkflowStepDefinition
,然后插入具有相同ID的其他WorkflowStepRelationship
如何告诉EF,WorkflowStepDefinition
的{{1}}中的InitialStep
与WorkflowStepRelationship
中StartingStepDefinition
的实例相同,并且在保存WorkflowDefinition
?