Реализация статических данных Entity Framework (таблица поиска)

В настоящее время я разрабатываю проект С# с использованием Entity Framework с подходом «сначала код». Я застрял в использовании статических (справочных) данных.

Предположим, что существуют сущности «кино» и «жанр кино»:

public class Movie
{
    [Key]
    public int ID;

    public String Name;

    public DateTime Year;

    public String GenreCode;

    [ForeignKey("GenreCode")]
    public virtual Genre Genre { get; set; }
}


public class Genre
{
    [Key]
    public String Code;

    //description of the code
    public String Desc;

    //Should I put this???
    public virtual ICollection<Movie> Movies { get; set; }  
}

У фильма может быть один жанр, но жанр может принадлежать к нескольким жанрам. В этом случае я должен поместить «общедоступные виртуальные фильмы ICollection {get; set;}» в классе «Жанр»? Я считаю, что не должен указывать это, так как Жанр - это статические данные. Однако я не уверен. Также я не хочу использовать enum для жанра в коде, так как в будущем новые жанры могут быть определены в базе данных.

Каков наилучший способ справиться с такими отношениями с помощью структуры сущностей?

Спасибо.

С уважением,


person tempx    schedule 06.11.2015    source источник


Ответы (1)


Нет, public virtual ICollection Movies { get; set; } туда ставить не надо, если не нужно делать что-то похожее на следующее:

Genre genre = ....;
var movies = genre.Movies.ToList();

Связь «один ко многим» между «Жанром» и «Фильмом» будет создана независимо от того, есть ли у вас коллекция Movies в жанре или нет.

person ycsun    schedule 06.11.2015
comment
Большое спасибо за быстрый ответ @ycsun! - person tempx; 06.11.2015