如何在不插入重复记录的情况下获取EntityFramework来保存我的实例

时间:2014-04-03 16:41:42

标签: c# entity-framework entity-framework-6

我的模型看起来像这样:

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也将是InitialStepRelationships之一的WorkflowDefinition

我首先使用代码生成数据库。

问题是,当我尝试保存具有此设置的WorkflowDefinition时,我收到一条错误消息,指出它无法在WorkflowStepDefinitions表中插入重复的行,而且似乎在尝试保存关联的StartingStepDefinition

时尝试插入WorkflowStepDefinition,然后插入具有相同ID的其他WorkflowStepRelationship

如何告诉EF,WorkflowStepDefinition的{​​{1}}中的InitialStepWorkflowStepRelationshipStartingStepDefinition的实例相同,并且在保存WorkflowDefinition

时不要尝试创建新实例

0 个答案:

没有答案