Entity framework 代码首先将多个模型引用到一个模型

Entity framework code first reference many models to one model

如何参考多个模型(Lesson, Set) 到一个模型(文件)

public class File
{
    public int ID { get; set; }
    public int Path { get; set; }
}

public class Lesson
{
    public int ID { get; set; }
    public virtual File File { get; set; }
}

public class Set
{
    public int ID { get; set; }
    public virtual List<File> Files { get; set; }
}

我尝试将 int File table 放入一个 ForigenKey,但是要设置的 Lesson 之间存在重复问题

有什么想法吗?

我仍在尝试理解您的 objective,您是否希望文件仅由一个课程引用,例如唯一索引?和Set一样吗?一个文件不能属于不同的集合?如果是,我会在课程中添加一个索引,对于集合,我会创建另一个 class 并添加一个索引。像这样:

public class File
{
    public int ID { get; set; }
    public int Path { get; set; }           
}

public class Lesson
{
    public int ID { get; set; }

    [ForeignKey("File")]
    [Index("IX_UniqueLessonFileId", IsUnique =true)]
    public int FileID { get; set; }

    public virtual File File { get; set; }
}

public class Set
{
    public int ID { get; set; }
    public virtual ICollection<SetFile> Files { get; set; }
}
public class SetFile
{
    public int ID { get; set; }

    [ForeignKey("Set")]
    public int SetId {get;set;}
    public virtual Set Set { get; set; }

    [ForeignKey("File")]
    [Index("IX_UniqueSetFileId", IsUnique =true)]       
    public int FileId {get;set;}
    public virtual File File { get; set; }
}