实体框架代码首先将许多模型引用到一个模型

时间:2015-03-03 17:48:18

标签: entity-framework ef-code-first

如何引用多个模型(课程,设置) 到一个模型(文件)

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表放入ForigenKey但是然后在Lesson之间存在重复问题来设置

任何想法?

1 个答案:

答案 0 :(得分:0)

我仍然试图理解你的目标,你是否希望File只被一个Lesson引用,就像一个独特的索引?与Set相同?文件不能是不同集的一部分?如果是,我会添加一个索引到课程和集合,我会创建另一个类,并添加一个索引。像这样:

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; }
}