2015-03-03 2 views
0

Как ссылаться много моделей (Урок, Set) к одной модели (File)Entity Framework код первой ссылки на многие модели одной модели

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

Я пытаюсь поставить таблицу ИНТ Файловые ForigenKey но есть Дублирующая проблема между уроком и заданием

Любая идея?

+0

Вы получаете сообщение об ошибке при миграции или использовании контекста с реальными данными. Может помочь увидеть этот код. –

+1

Я все еще пытаюсь понять вашу цель, вы хотите, чтобы на файл ссылался только один Урок, как уникальный индекс? то же самое с Set? Файл не может быть частью разных наборов? – George

+0

Ищите * полиморфные ассоциации *. –

ответ

0

Я все еще пытаюсь понять вашу цель, вы хотите, чтобы на файл указывался только один Урок, как уникальный индекс? то же самое с Set? Файл не может быть частью разных наборов? если да, я бы добавил Index To Lesson и для Set, я бы создал другой класс, а также добавил Index. Что-то вроде этого:

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; } 
} 
Смежные вопросы