如何建模更多实体以在单个表中引用相同类型的集合

时间:2016-03-19 22:13:39

标签: entity-framework entity-framework-6 code-first ef-fluent-api

我对EF不太熟悉,我试图弄清楚什么是正确的方式或创建实体的选项是什么,其中的集合可以包含在其他实体(不同的表)中。 让我们说我有三个现有的类(ModuleA,ModuleB,ModuleD),我想包含它自己的数据实体集合。 我想要一个用于数据实体的单个表,但我不喜欢每个FK有三个可以为空的Guid列的想法。 这也让我在应用迁移时出错(" ......可能导致循环或多个级联路径") - 这可能通过手动删除级联删除和删除数据来解决,但我不喜欢那个想法。

我最想要的是所有三个模块的FK数据的单个(共享)Guid属性,这是不可能的,至少在同一时间所有三个主表中都不存在相同的ID(因为它创建了三个数据库中的FK。

user[0]

1 个答案:

答案 0 :(得分:0)

您可以创建3个模块到数据的多对多表格,如下所示:

class Data
{
    public int Id {get; set;}
    public byte[] Values {get; set;}

}

class ModuleAData 
{
    public ModuleAId {get; set;}
    public DataId {get; set;}
}

class ModuleA
{
    public Guid Id {get; set;}
    public ICollection<ModuleAData> Data {get; set;}
    // some other stuff...  
}