根据自动生成的ID在EF中创建链接的实体

时间:2018-06-21 10:14:04

标签: entity-framework entity-framework-6

EF6中的挑战

运行此命令(本质上添加实体记录)后如何检查数据库中结果行的ID:

                         0
0           1,2,3-triazole
1  16s rrna gene amplicons

...并使用该ID将具有X =属性的第二个实体添加到第一个实体的ID中?

使用该ID将具有属性X =的第二个实体添加到第一个实体的ID中?

repository.Add(myEntity1);  

现在实体1和实体2之间没有链接,因为我不知道第一次添加后如何保存id(由ef自动生成) ...并将其保留为在第二个实体中添加为fk?

非常感谢

1 个答案:

答案 0 :(得分:0)

您可以在致电SaveChanges之后尝试以下操作:

myEntity2.X = myEntity1.Id;

然后再次呼叫SaveChanges。但是,这并没有真正利用实体框架的功能来管理实体之间的关系。如果您的班级定义如下:

public class MyEntity
{
    [Key]
    public int Id { get; set; }

    [ForeignKey(nameof(RelatedEntity))]
    public int RelatedEntityId { get; set; }
    public MyEntity RelatedEntity { get; set; }
}

您可以添加如下所示的实体,并在调用SaveChanges之后为您处理ID /外键匹配:

myEntity1.RelatedEntity = myEntity2;

这是一个相当通用的解决方案,因此,如果您想要更具体的内容,则需要在问题中包含更多详细信息。

您可以阅读有关配置实体框架关系here的更多信息。